From e8812ca4275be98b969299d78aad6e6e2eb5f6dc Mon Sep 17 00:00:00 2001
From: marcmuschko <marc.muschko@sap.com>
Date: Thu, 11 Jun 2020 12:58:23 +0200
Subject: [PATCH] UI Adjustments, External Navigation Issues (#380)

* adjusted icon size on main about, adjusted text spacing

* design adjustments and spacings

* changed onboarding flow; user does not get navigated to screen 4 after declining tracing permission; explicit denial required

* catch exception when no browser or phone app installed

* fixed main overview a18n contrast issue

* merged external navigation helpers into single helper object

* adjusted bluetooth settings navigatioN

* added custom exception for external actions; added external action helper

* fixed build issues

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
---
 .../exception/ExternalActionException.kt      |  12 +
 .../exception/reporting/ErrorCodes.kt         |   3 +-
 .../information/InformationContactFragment.kt |   4 +-
 .../ui/information/InformationFragment.kt     |   4 +-
 .../rki/coronawarnapp/ui/main/MainFragment.kt |   4 +-
 .../ui/main/MainShareFragment.kt              |   4 +-
 .../onboarding/OnboardingTracingFragment.kt   |   2 +-
 .../settings/SettingsNotificationFragment.kt  |   4 +-
 .../ui/settings/SettingsTracingFragment.kt    |   6 +-
 .../submission/SubmissionContactFragment.kt   |   4 +-
 .../de/rki/coronawarnapp/util/CallHelper.kt   |  20 --
 .../util/ExternalActionHelper.kt              | 159 +++++++++++++
 .../rki/coronawarnapp/util/OpenUrlHelper.kt   |  16 --
 .../util/SettingsNavigationHelper.kt          |  48 ----
 .../de/rki/coronawarnapp/util/ShareHelper.kt  |  14 --
 .../ic_main_illustration_overview.xml         | 198 ++++++++--------
 .../res/drawable-night/ic_main_overview_1.xml |  24 +-
 .../res/drawable-night/ic_main_overview_2.xml |  24 +-
 .../res/drawable-night/ic_main_overview_3.xml |  24 +-
 .../ic_main_illustration_overview.xml         | 214 +++++++++---------
 .../res/layout/fragment_main_overview.xml     |  27 +--
 .../layout/include_main_overview_glossary.xml |   3 +
 .../res/layout/include_main_overview_row.xml  |  73 ++++++
 .../src/main/res/layout/include_row.xml       |  35 +--
 .../src/main/res/values/dimens.xml            |   4 +-
 .../src/main/res/values/strings.xml           |   4 +-
 .../src/main/res/values/styles.xml            |   5 +
 .../SubmitDiagnosisKeysTransactionTest.kt     |   4 +-
 ...perTest.kt => ExternalActionHelperTest.kt} |   6 +-
 29 files changed, 544 insertions(+), 405 deletions(-)
 create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/ExternalActionException.kt
 delete mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CallHelper.kt
 create mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt
 delete mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/OpenUrlHelper.kt
 delete mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/SettingsNavigationHelper.kt
 delete mode 100644 Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ShareHelper.kt
 create mode 100644 Corona-Warn-App/src/main/res/layout/include_main_overview_row.xml
 rename Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/{CallHelperTest.kt => ExternalActionHelperTest.kt} (78%)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/ExternalActionException.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/ExternalActionException.kt
new file mode 100644
index 000000000..f9b1d657f
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/ExternalActionException.kt
@@ -0,0 +1,12 @@
+package de.rki.coronawarnapp.exception
+
+import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.exception.reporting.ErrorCodes
+import de.rki.coronawarnapp.exception.reporting.ReportedException
+
+class ExternalActionException(cause: Throwable) : ReportedException(
+    ErrorCodes.EXTERNAL_NAVIGATION.code,
+    "Error during external navigation, likely due to bad target / action not available",
+    cause,
+    R.string.errors_external_action
+)
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ErrorCodes.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ErrorCodes.kt
index 51b315289..9f62362d1 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ErrorCodes.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/exception/reporting/ErrorCodes.kt
@@ -19,5 +19,6 @@ enum class ErrorCodes(val code: Int) {
     REPORTED_EXCEPTION_UNKNOWN_PROBLEM(9002),
 
     // NONTECHNICAL
-    NO_NETWORK_CONNECTIVITY(1)
+    NO_NETWORK_CONNECTIVITY(1),
+    EXTERNAL_NAVIGATION(10),
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt
index c0e00a66e..fd26db493 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt
@@ -9,7 +9,7 @@ import androidx.fragment.app.Fragment
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentInformationContactBinding
 import de.rki.coronawarnapp.ui.main.MainActivity
-import de.rki.coronawarnapp.util.CallHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 
 /**
  * Basic Fragment which only displays static content.
@@ -57,7 +57,7 @@ class InformationContactFragment : Fragment() {
         }
         binding.informationContactNavigationRowPhone.navigationRow.setOnClickListener {
             val number = getString(R.string.information_contact_phone_call_number)
-            CallHelper.call(this, "tel:$number")
+            ExternalActionHelper.call(this, number)
         }
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
index 804181ce3..bc14cbf4b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt
@@ -11,7 +11,7 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentInformationBinding
 import de.rki.coronawarnapp.ui.doNavigate
 import de.rki.coronawarnapp.ui.main.MainActivity
-import de.rki.coronawarnapp.util.OpenUrlHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 
 /**
  * Basic Fragment which links to static and web content.
@@ -75,7 +75,7 @@ class InformationFragment : Fragment() {
             )
         }
         binding.informationHelp.mainRow.setOnClickListener {
-            OpenUrlHelper.navigate(this, requireContext().getString(R.string.main_about_link))
+            ExternalActionHelper.openUrl(this, requireContext().getString(R.string.main_about_link))
         }
         binding.informationLegal.mainRow.setOnClickListener {
             findNavController().doNavigate(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
index 4ad3482f3..44c1104f1 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainFragment.kt
@@ -19,7 +19,7 @@ import de.rki.coronawarnapp.ui.doNavigate
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.SubmissionViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
-import de.rki.coronawarnapp.util.OpenUrlHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 import timber.log.Timber
 
 /**
@@ -134,7 +134,7 @@ class MainFragment : Fragment() {
             findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToSettingsTracingFragment())
         }
         binding.mainAbout.mainCard.setOnClickListener {
-            OpenUrlHelper.navigate(this, requireContext().getString(R.string.main_about_link))
+            ExternalActionHelper.openUrl(this, requireContext().getString(R.string.main_about_link))
         }
         binding.mainHeaderShare.buttonIcon.setOnClickListener {
             findNavController().doNavigate(MainFragmentDirections.actionMainFragmentToMainSharingFragment())
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainShareFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainShareFragment.kt
index 5352289e9..42077a648 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainShareFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainShareFragment.kt
@@ -9,7 +9,7 @@ import androidx.fragment.app.activityViewModels
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentMainShareBinding
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
-import de.rki.coronawarnapp.util.ShareHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 
 /**
  * This fragment informs the user about what he is going to share and how he is going to help everybody with this :)
@@ -49,7 +49,7 @@ class MainShareFragment : Fragment() {
 
     private fun setButtonOnClickListener() {
         binding.mainShareButton.setOnClickListener {
-            ShareHelper.shareText(this, getString(R.string.main_share_message), null)
+            ExternalActionHelper.shareText(this, getString(R.string.main_share_message), null)
         }
         binding.mainShareHeader.headerButtonBack.buttonIcon.setOnClickListener {
             (activity as MainActivity).goBack()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
index 7d251557b..21115e916 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingTracingFragment.kt
@@ -98,7 +98,7 @@ class OnboardingTracingFragment : Fragment(),
     }
 
     override fun onFailure(exception: Exception?) {
-        navigate()
+        // dialog closed, user has to explicitly allow or deny the tracing permission
     }
 
     private fun showCancelDialog() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsNotificationFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsNotificationFragment.kt
index 4317f0e40..99ca01e18 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsNotificationFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsNotificationFragment.kt
@@ -10,7 +10,7 @@ import de.rki.coronawarnapp.databinding.FragmentSettingsNotificationsBinding
 import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
-import de.rki.coronawarnapp.util.SettingsNavigationHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 
 /**
  * This is the setting notification page. Here the user sees his os notifications settings status.
@@ -88,7 +88,7 @@ class SettingsNotificationFragment : Fragment() {
         }
         // System Settings
         settingsRow.setOnClickListener {
-            SettingsNavigationHelper.toNotifications(requireContext())
+            ExternalActionHelper.toNotifications(requireContext())
         }
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt
index e22cdad1d..72cb7f518 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsTracingFragment.kt
@@ -21,7 +21,7 @@ import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
 import de.rki.coronawarnapp.util.DialogHelper
-import de.rki.coronawarnapp.util.SettingsNavigationHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 import de.rki.coronawarnapp.worker.BackgroundWorkScheduler
 import kotlinx.coroutines.launch
 
@@ -115,10 +115,10 @@ class SettingsTracingFragment : Fragment(),
             (activity as MainActivity).goBack()
         }
         binding.settingsTracingStatusBluetooth.tracingStatusCardButton.setOnClickListener {
-            SettingsNavigationHelper.toConnections(requireContext())
+            ExternalActionHelper.toMainSettings(requireContext())
         }
         binding.settingsTracingStatusConnection.tracingStatusCardButton.setOnClickListener {
-            SettingsNavigationHelper.toConnections(requireContext())
+            ExternalActionHelper.toConnections(requireContext())
         }
     }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
index edc1c920a..d61a15600 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragment.kt
@@ -11,7 +11,7 @@ import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentSubmissionContactBinding
 import de.rki.coronawarnapp.ui.doNavigate
 import de.rki.coronawarnapp.ui.main.MainActivity
-import de.rki.coronawarnapp.util.CallHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper
 
 /**
  * The [SubmissionContactFragment] allows requesting a teletan via phone
@@ -67,6 +67,6 @@ class SubmissionContactFragment : Fragment() {
 
     private fun dial() = context?.let {
         val number = getString(R.string.submission_contact_number_dial)
-        CallHelper.call(this, "tel:$number")
+        ExternalActionHelper.call(this, number)
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CallHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CallHelper.kt
deleted file mode 100644
index 0694387fc..000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CallHelper.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import android.content.Intent
-import android.net.Uri
-import androidx.fragment.app.Fragment
-
-/**
- * Helper object for intents triggering a phone call
- * todo unify once necessary intents are final with share, external url and others
- */
-object CallHelper {
-    fun call(fragment: Fragment, uri: String) {
-        fragment.startActivity(
-            Intent(
-                Intent.ACTION_DIAL,
-                Uri.parse(uri)
-            )
-        )
-    }
-}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt
new file mode 100644
index 000000000..a44561a30
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt
@@ -0,0 +1,159 @@
+package de.rki.coronawarnapp.util
+
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.os.Build
+import android.provider.Settings
+import androidx.fragment.app.Fragment
+import de.rki.coronawarnapp.exception.ExceptionCategory
+import de.rki.coronawarnapp.exception.ExternalActionException
+import de.rki.coronawarnapp.exception.reporting.report
+
+/**
+ * Helper object for external actions
+ *
+ */
+object ExternalActionHelper {
+    private val TAG: String? = ExternalActionHelper::class.simpleName
+
+    /**
+     * Opens the share default overlay to provide the Corona-Warn-App installation link
+     *
+     * @param fragment
+     * @param text
+     * @param title
+     */
+    fun shareText(fragment: Fragment, text: String, title: String?) {
+        try {
+            fragment.startActivity(Intent.createChooser(Intent().apply {
+                action = Intent.ACTION_SEND
+                type = "text/plain"
+                putExtra(Intent.EXTRA_TEXT, text)
+            }, title))
+        } catch (exception: Exception) {
+            // catch generic exception on share
+            // possibly due to bad share content format
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+
+    /**
+     * Opens the client default phone app and inserts a given number
+     *
+     * @param fragment
+     * @param uri
+     */
+    fun call(fragment: Fragment, uri: String) {
+        try {
+            fragment.startActivity(
+                Intent(
+                    Intent.ACTION_DIAL,
+                    Uri.parse("tel:$uri")
+                )
+            )
+        } catch (exception: Exception) {
+            // catch generic exception on call
+            // possibly due to bad number format
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+
+    /**
+     * Opens a given url in the client default browser
+     *
+     * @param fragment
+     * @param url
+     */
+    fun openUrl(fragment: Fragment, url: String) {
+        try {
+            fragment.startActivity(
+                Intent(
+                    Intent.ACTION_VIEW,
+                    Uri.parse(url)
+                )
+            )
+        } catch (exception: Exception) {
+            // catch generic exception on url navigation
+            // most likely due to bad url format
+            // or less likely no browser installed
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+
+    /**
+     * Navigate the user to the os connection settings.
+     *
+     * @param context
+     */
+    fun toConnections(context: Context) {
+        try {
+            val intent = Intent(Settings.ACTION_WIRELESS_SETTINGS)
+            context.startActivity(intent)
+        } catch (exception: Exception) {
+            // catch generic exception on settings navigation
+            // most likely due to device / rom specific intent issue
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+
+    /**
+     * Navigate the user to the os notification settings.
+     *
+     * @param context
+     */
+    // todo has to be tested on API23 on a device
+    fun toNotifications(context: Context) {
+        try {
+            val intent = Intent()
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
+                intent.putExtra(
+                    Settings.EXTRA_APP_PACKAGE,
+                    context.packageName
+                )
+            } else {
+                intent.putExtra(
+                    "app_package",
+                    context.packageName
+                )
+                intent.putExtra("app_uid", context.applicationInfo.uid)
+            }
+            context.startActivity(intent)
+        } catch (exception: Exception) {
+            // catch generic exception on settings navigation
+            // most likely due to device / rom specific intent issue
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+
+    /**
+     * Navigate the user to the os settings as navigation to
+     * bluetooth settings directly is not reliable for all devices
+     *
+     * @param context
+     */
+    fun toMainSettings(context: Context) {
+        try {
+            val intent = Intent(Settings.ACTION_SETTINGS)
+            context.startActivity(intent)
+        } catch (exception: Exception) {
+            // catch generic exception on settings navigation
+            // most likely due to device / rom specific intent issue
+            ExternalActionException(exception).report(
+                ExceptionCategory.UI
+            )
+        }
+    }
+    // todo navigate storage settings
+}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/OpenUrlHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/OpenUrlHelper.kt
deleted file mode 100644
index 2705dc00f..000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/OpenUrlHelper.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import android.content.Intent
-import android.net.Uri
-import androidx.fragment.app.Fragment
-
-object OpenUrlHelper {
-    fun navigate(fragment: Fragment, url: String) {
-        fragment.startActivity(
-            Intent(
-                Intent.ACTION_VIEW,
-                Uri.parse(url)
-            )
-        )
-    }
-}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/SettingsNavigationHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/SettingsNavigationHelper.kt
deleted file mode 100644
index bb2fb34da..000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/SettingsNavigationHelper.kt
+++ /dev/null
@@ -1,48 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import android.content.Context
-import android.content.Intent
-import android.os.Build
-import android.provider.Settings
-
-/**
- * A helper to navigate to the os settings, used in different places in the application,
- * e.g. settings, notification settings, tracing settings...
- */
-object SettingsNavigationHelper {
-
-    /**
-     * Navigate the user to the os connection settings.
-     *
-     * @param context
-     */
-    fun toConnections(context: Context) {
-        val intent = Intent(Settings.ACTION_WIRELESS_SETTINGS)
-        context.startActivity(intent)
-    }
-
-    /**
-     * Navigate the user to the os notification settings.
-     *
-     * @param context
-     */
-    // todo has to be tested on API23 on a device
-    fun toNotifications(context: Context) {
-        val intent = Intent()
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
-            intent.putExtra(
-                Settings.EXTRA_APP_PACKAGE,
-                context.packageName
-            )
-        } else {
-            intent.putExtra(
-                "app_package",
-                context.packageName
-            )
-            intent.putExtra("app_uid", context.applicationInfo.uid)
-        }
-        context.startActivity(intent)
-    }
-    // todo navigate storage settings
-}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ShareHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ShareHelper.kt
deleted file mode 100644
index 5a366fdf5..000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ShareHelper.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import android.content.Intent
-import androidx.fragment.app.Fragment
-
-object ShareHelper {
-    fun shareText(fragment: Fragment, text: String, title: String?) {
-        fragment.startActivity(Intent.createChooser(Intent().apply {
-            action = Intent.ACTION_SEND
-            type = "text/plain"
-            putExtra(Intent.EXTRA_TEXT, text)
-        }, title))
-    }
-}
diff --git a/Corona-Warn-App/src/main/res/drawable-night/ic_main_illustration_overview.xml b/Corona-Warn-App/src/main/res/drawable-night/ic_main_illustration_overview.xml
index ca1ad7d7e..9c0ecc723 100644
--- a/Corona-Warn-App/src/main/res/drawable-night/ic_main_illustration_overview.xml
+++ b/Corona-Warn-App/src/main/res/drawable-night/ic_main_illustration_overview.xml
@@ -1,101 +1,101 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="361dp"
-    android:height="220dp"
-    android:viewportWidth="361"
-    android:viewportHeight="220">
-    <group>
-        <path
-            android:fillColor="#1E1E1F"
-            android:fillType="nonZero"
-            android:pathData="M205.338,180.759L155.368,180.759C150.281,180.757 146.157,176.621 146.156,171.519L146.169,46.54C146.176,41.443 150.299,37.315 155.381,37.315L205.352,37.315C210.431,37.325 214.543,41.455 214.546,46.549L214.546,171.53C214.544,176.628 210.423,180.759 205.338,180.759Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M205.338,180.759L155.368,180.759C150.281,180.757 146.157,176.621 146.156,171.519L146.169,46.54C146.176,41.443 150.299,37.315 155.381,37.315L205.352,37.315C210.431,37.325 214.543,41.455 214.546,46.549L214.546,171.53C214.544,176.628 210.423,180.759 205.338,180.759Z"
-            android:strokeWidth="3.567"
-            android:strokeColor="#4A4A4A" />
-        <path
-            android:fillColor="#4A4A4A"
-            android:fillType="nonZero"
-            android:pathData="M155.955,46.483L204.34,46.483A4,4 0,0 1,208.34 50.483L208.34,59.483A4,4 0,0 1,204.34 63.483L155.955,63.483A4,4 0,0 1,151.955 59.483L151.955,50.483A4,4 0,0 1,155.955 46.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#4A4A4A"
-            android:fillType="nonZero"
-            android:pathData="M155.955,129.483L204.34,129.483A4,4 0,0 1,208.34 133.483L208.34,169.483A4,4 0,0 1,204.34 173.483L155.955,173.483A4,4 0,0 1,151.955 169.483L151.955,133.483A4,4 0,0 1,155.955 129.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#409CC8"
-            android:fillType="nonZero"
-            android:pathData="M158.944,162.483L201.808,162.483A3,3 0,0 1,204.808 165.483L204.808,165.483A3,3 0,0 1,201.808 168.483L158.944,168.483A3,3 0,0 1,155.944 165.483L155.944,165.483A3,3 0,0 1,158.944 162.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#6ACC8B"
-            android:fillType="nonZero"
-            android:pathData="M155.955,73.483L204.34,73.483A4,4 0,0 1,208.34 77.483L208.34,115.483A4,4 0,0 1,204.34 119.483L155.955,119.483A4,4 0,0 1,151.955 115.483L151.955,77.483A4,4 0,0 1,155.955 73.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#3F3F43"
-            android:fillType="nonZero"
-            android:pathData="M73.548,99.741a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#FFFFFF"
-            android:fillType="nonZero"
-            android:pathData="M88.506,98.741C88.506,99.841 87.609,100.741 86.512,100.741L84.517,100.741L84.517,102.741L87.509,102.741C88.057,102.741 88.506,103.191 88.506,103.741C88.506,104.291 88.057,104.741 87.509,104.741L83.52,104.741C82.972,104.741 82.523,104.291 82.523,103.741L82.523,100.741C82.523,99.641 83.42,98.741 84.517,98.741L86.512,98.741L86.512,96.741L83.52,96.741C82.972,96.741 82.523,96.291 82.523,95.741C82.523,95.191 82.972,94.741 83.52,94.741L86.512,94.741C87.609,94.741 88.506,95.641 88.506,96.741L88.506,98.741Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#3F3F43"
-            android:fillType="nonZero"
-            android:pathData="M73.548,55a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#FFFFFF"
-            android:fillType="nonZero"
-            android:pathData="M86.512,60C85.963,60 85.515,59.55 85.515,59L85.515,52L84.517,52C83.969,52 83.52,51.55 83.52,51C83.52,50.45 83.969,50 84.517,50L86.512,50C87.06,50 87.509,50.45 87.509,51L87.509,59C87.509,59.55 87.06,60 86.512,60Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#3F3F43"
-            android:fillType="nonZero"
-            android:pathData="M73.548,144.483a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#FFFFFF"
-            android:fillType="nonZero"
-            android:pathData="M88.511,142.983C88.511,143.813 87.843,144.483 87.015,144.483C87.843,144.483 88.511,145.153 88.511,145.983L88.511,147.483C88.511,148.593 87.614,149.483 86.517,149.483L83.515,149.483C82.967,149.483 82.518,149.033 82.518,148.483C82.518,147.933 82.967,147.483 83.515,147.483L86.517,147.483L86.507,145.483L85.51,145.483C84.961,145.483 84.512,145.033 84.512,144.483C84.512,143.933 84.961,143.483 85.51,143.483L86.507,143.483L86.517,141.483L83.515,141.483C82.967,141.483 82.528,141.033 82.528,140.483C82.528,139.933 82.967,139.483 83.515,139.483L86.517,139.483C87.614,139.483 88.511,140.383 88.511,141.483L88.511,142.983Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.958,144.483L137.869,144.483"
-            android:strokeWidth="1"
-            android:strokeColor="#3F3F43"
-            android:strokeLineCap="square" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.958,55L137.869,55"
-            android:strokeWidth="1"
-            android:strokeColor="#3F3F43"
-            android:strokeLineCap="square" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.958,99.741L137.869,99.741"
-            android:strokeWidth="1"
-            android:strokeColor="#3F3F43"
-            android:strokeLineCap="square" />
-    </group>
+    android:width="360dp"
+    android:height="221dp"
+    android:viewportWidth="360"
+    android:viewportHeight="221">
+  <group>
+    <path
+        android:pathData="M205.338,181.742L155.368,181.742C150.281,181.74 146.157,177.604 146.156,172.502L146.169,47.523C146.176,42.426 150.299,38.298 155.381,38.298L205.352,38.298C210.431,38.308 214.543,42.438 214.546,47.532L214.546,172.513C214.544,177.611 210.423,181.742 205.338,181.742Z"
+        android:strokeWidth="1"
+        android:fillColor="#000000"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M205.338,181.742L155.368,181.742C150.281,181.74 146.157,177.604 146.156,172.502L146.169,47.523C146.176,42.426 150.299,38.298 155.381,38.298L205.352,38.298C210.431,38.308 214.543,42.438 214.546,47.532L214.546,172.513C214.544,177.611 210.423,181.742 205.338,181.742Z"
+        android:strokeWidth="3.567"
+        android:fillColor="#00000000"
+        android:strokeColor="#999999"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M155.955,47.466L204.34,47.466A4,4 0,0 1,208.34 51.466L208.34,60.466A4,4 0,0 1,204.34 64.466L155.955,64.466A4,4 0,0 1,151.955 60.466L151.955,51.466A4,4 0,0 1,155.955 47.466z"
+        android:strokeWidth="1"
+        android:fillColor="#595959"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M155.955,130.466L204.34,130.466A4,4 0,0 1,208.34 134.466L208.34,170.466A4,4 0,0 1,204.34 174.466L155.955,174.466A4,4 0,0 1,151.955 170.466L151.955,134.466A4,4 0,0 1,155.955 130.466z"
+        android:strokeWidth="1"
+        android:fillColor="#595959"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M158.944,163.466L201.808,163.466A3,3 0,0 1,204.808 166.466L204.808,166.466A3,3 0,0 1,201.808 169.466L158.944,169.466A3,3 0,0 1,155.944 166.466L155.944,166.466A3,3 0,0 1,158.944 163.466z"
+        android:strokeWidth="1"
+        android:fillColor="#83D2F2"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M155.955,74.466L204.34,74.466A4,4 0,0 1,208.34 78.466L208.34,116.466A4,4 0,0 1,204.34 120.466L155.955,120.466A4,4 0,0 1,151.955 116.466L151.955,78.466A4,4 0,0 1,155.955 74.466z"
+        android:strokeWidth="1"
+        android:fillColor="#6ACC8B"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M73.548,100.724a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
+        android:strokeWidth="1"
+        android:fillColor="#595959"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M88.506,99.724C88.506,100.824 87.609,101.724 86.512,101.724L84.517,101.724L84.517,103.724L87.509,103.724C88.057,103.724 88.506,104.174 88.506,104.724C88.506,105.274 88.057,105.724 87.509,105.724L83.52,105.724C82.972,105.724 82.523,105.274 82.523,104.724L82.523,101.724C82.523,100.624 83.42,99.724 84.517,99.724L86.512,99.724L86.512,97.724L83.52,97.724C82.972,97.724 82.523,97.274 82.523,96.724C82.523,96.174 82.972,95.724 83.52,95.724L86.512,95.724C87.609,95.724 88.506,96.624 88.506,97.724L88.506,99.724Z"
+        android:strokeWidth="1"
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M73.548,55.983a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
+        android:strokeWidth="1"
+        android:fillColor="#595959"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M86.512,60.983C85.963,60.983 85.515,60.533 85.515,59.983L85.515,52.983L84.517,52.983C83.969,52.983 83.52,52.533 83.52,51.983C83.52,51.433 83.969,50.983 84.517,50.983L86.512,50.983C87.06,50.983 87.509,51.433 87.509,51.983L87.509,59.983C87.509,60.533 87.06,60.983 86.512,60.983Z"
+        android:strokeWidth="1"
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M73.548,145.466a11.967,12 0,1 0,23.934 0a11.967,12 0,1 0,-23.934 0z"
+        android:strokeWidth="1"
+        android:fillColor="#595959"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M88.511,143.966C88.511,144.796 87.843,145.466 87.015,145.466C87.843,145.466 88.511,146.136 88.511,146.966L88.511,148.466C88.511,149.576 87.614,150.466 86.517,150.466L83.515,150.466C82.967,150.466 82.518,150.016 82.518,149.466C82.518,148.916 82.967,148.466 83.515,148.466L86.517,148.466L86.507,146.466L85.51,146.466C84.961,146.466 84.512,146.016 84.512,145.466C84.512,144.916 84.961,144.466 85.51,144.466L86.507,144.466L86.517,142.466L83.515,142.466C82.967,142.466 82.528,142.016 82.528,141.466C82.528,140.916 82.967,140.466 83.515,140.466L86.517,140.466C87.614,140.466 88.511,141.366 88.511,142.466L88.511,143.966Z"
+        android:strokeWidth="1"
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M105.958,145.466L137.869,145.466"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#999999"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+    <path
+        android:pathData="M105.958,55.983L137.869,55.983"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#999999"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+    <path
+        android:pathData="M105.958,100.724L137.869,100.724"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#999999"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+  </group>
 </vector>
diff --git a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_1.xml b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_1.xml
index 7671cae68..b63d0e0a1 100644
--- a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_1.xml
+++ b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_1.xml
@@ -3,16 +3,16 @@
     android:height="42dp"
     android:viewportWidth="40"
     android:viewportHeight="42">
-    <path
-        android:fillColor="#3F3F43"
-        android:fillType="evenOdd"
-        android:pathData="M20,21m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M21,26C20.45,26 20,25.55 20,25L20,18L19,18C18.45,18 18,17.55 18,17C18,16.45 18.45,16 19,16L21,16C21.55,16 22,16.45 22,17L22,25C22,25.55 21.55,26 21,26Z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
+  <path
+      android:pathData="M20,21m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+      android:strokeWidth="1"
+      android:fillColor="#595959"
+      android:fillType="evenOdd"
+      android:strokeColor="#00000000"/>
+  <path
+      android:pathData="M21,26C20.45,26 20,25.55 20,25L20,18L19,18C18.45,18 18,17.55 18,17C18,16.45 18.45,16 19,16L21,16C21.55,16 22,16.45 22,17L22,25C22,25.55 21.55,26 21,26Z"
+      android:strokeWidth="1"
+      android:fillColor="#FFFFFF"
+      android:fillType="nonZero"
+      android:strokeColor="#00000000"/>
 </vector>
diff --git a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_2.xml b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_2.xml
index 2f3a5bd24..acc3008e0 100644
--- a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_2.xml
+++ b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_2.xml
@@ -3,16 +3,16 @@
     android:height="41dp"
     android:viewportWidth="40"
     android:viewportHeight="41">
-    <path
-        android:fillColor="#3F3F43"
-        android:fillType="evenOdd"
-        android:pathData="M20,20.983m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M23,19.983C23,21.083 22.1,21.983 21,21.983L19,21.983L19,23.983L22,23.983C22.55,23.983 23,24.433 23,24.983C23,25.533 22.55,25.983 22,25.983L18,25.983C17.45,25.983 17,25.533 17,24.983L17,21.983C17,20.883 17.9,19.983 19,19.983L21,19.983L21,17.983L18,17.983C17.45,17.983 17,17.533 17,16.983C17,16.433 17.45,15.983 18,15.983L21,15.983C22.1,15.983 23,16.883 23,17.983L23,19.983Z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
+  <path
+      android:pathData="M20,20.983m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+      android:strokeWidth="1"
+      android:fillColor="#595959"
+      android:fillType="evenOdd"
+      android:strokeColor="#00000000"/>
+  <path
+      android:pathData="M23,19.983C23,21.083 22.1,21.983 21,21.983L19,21.983L19,23.983L22,23.983C22.55,23.983 23,24.433 23,24.983C23,25.533 22.55,25.983 22,25.983L18,25.983C17.45,25.983 17,25.533 17,24.983L17,21.983C17,20.883 17.9,19.983 19,19.983L21,19.983L21,17.983L18,17.983C17.45,17.983 17,17.533 17,16.983C17,16.433 17.45,15.983 18,15.983L21,15.983C22.1,15.983 23,16.883 23,17.983L23,19.983Z"
+      android:strokeWidth="1"
+      android:fillColor="#FFFFFF"
+      android:fillType="nonZero"
+      android:strokeColor="#00000000"/>
 </vector>
diff --git a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_3.xml b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_3.xml
index 0c02d2b30..939b24746 100644
--- a/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_3.xml
+++ b/Corona-Warn-App/src/main/res/drawable-night/ic_main_overview_3.xml
@@ -3,16 +3,16 @@
     android:height="42dp"
     android:viewportWidth="40"
     android:viewportHeight="42">
-    <path
-        android:fillColor="#3F3F43"
-        android:fillType="evenOdd"
-        android:pathData="M20,21m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M23.005,19.5C23.005,20.33 22.335,21 21.505,21C22.335,21 23.005,21.67 23.005,22.5L23.005,24C23.005,25.11 22.105,26 21.005,26L17.995,26C17.445,26 16.995,25.55 16.995,25C16.995,24.45 17.445,24 17.995,24L21.005,24L20.995,22L19.995,22C19.445,22 18.995,21.55 18.995,21C18.995,20.45 19.445,20 19.995,20L20.995,20L21.005,18L17.995,18C17.445,18 17.005,17.55 17.005,17C17.005,16.45 17.445,16 17.995,16L21.005,16C22.105,16 23.005,16.9 23.005,18L23.005,19.5Z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
+  <path
+      android:pathData="M20,21m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+      android:strokeWidth="1"
+      android:fillColor="#595959"
+      android:fillType="evenOdd"
+      android:strokeColor="#00000000"/>
+  <path
+      android:pathData="M23.005,19.5C23.005,20.33 22.335,21 21.505,21C22.335,21 23.005,21.67 23.005,22.5L23.005,24C23.005,25.11 22.105,26 21.005,26L17.995,26C17.445,26 16.995,25.55 16.995,25C16.995,24.45 17.445,24 17.995,24L21.005,24L20.995,22L19.995,22C19.445,22 18.995,21.55 18.995,21C18.995,20.45 19.445,20 19.995,20L20.995,20L21.005,18L17.995,18C17.445,18 17.005,17.55 17.005,17C17.005,16.45 17.445,16 17.995,16L21.005,16C22.105,16 23.005,16.9 23.005,18L23.005,19.5Z"
+      android:strokeWidth="1"
+      android:fillColor="#FFFFFF"
+      android:fillType="nonZero"
+      android:strokeColor="#00000000"/>
 </vector>
diff --git a/Corona-Warn-App/src/main/res/drawable/ic_main_illustration_overview.xml b/Corona-Warn-App/src/main/res/drawable/ic_main_illustration_overview.xml
index cb32ad077..f74ff2a09 100644
--- a/Corona-Warn-App/src/main/res/drawable/ic_main_illustration_overview.xml
+++ b/Corona-Warn-App/src/main/res/drawable/ic_main_illustration_overview.xml
@@ -1,105 +1,113 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="361dp"
-    android:height="220dp"
-    android:viewportWidth="361"
-    android:viewportHeight="220">
-    <group>
-        <clip-path android:pathData="M0.125,0h360v220h-360z" />
-        <path
-            android:fillColor="#FFFFFF"
-            android:fillType="evenOdd"
-            android:pathData="M205.156,180.759L155.048,180.759C149.946,180.757 145.811,176.621 145.81,171.519L145.823,46.54C145.83,41.443 149.964,37.315 155.061,37.315L205.17,37.315C210.263,37.325 214.387,41.455 214.39,46.549L214.39,171.53C214.388,176.628 210.255,180.759 205.156,180.759Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M205.156,180.759L155.048,180.759C149.946,180.757 145.811,176.621 145.81,171.519L145.823,46.54C145.83,41.443 149.964,37.315 155.061,37.315L205.17,37.315C210.263,37.325 214.387,41.455 214.39,46.549L214.39,171.53C214.388,176.628 210.255,180.759 205.156,180.759Z"
-            android:strokeWidth="3.567"
-            android:strokeColor="#4A4A4A" />
-        <path
-            android:fillColor="#E7E7E7"
-            android:fillType="evenOdd"
-            android:pathData="M155.625,46.483L204.167,46.483A4,4 0,0 1,208.167 50.483L208.167,59.483A4,4 0,0 1,204.167 63.483L155.625,63.483A4,4 0,0 1,151.625 59.483L151.625,50.483A4,4 0,0 1,155.625 46.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#E7E7E7"
-            android:fillType="evenOdd"
-            android:pathData="M155.625,129.483L204.167,129.483A4,4 0,0 1,208.167 133.483L208.167,169.483A4,4 0,0 1,204.167 173.483L155.625,173.483A4,4 0,0 1,151.625 169.483L151.625,133.483A4,4 0,0 1,155.625 129.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#0088B2"
-            android:fillType="evenOdd"
-            android:pathData="M158.625,162.483L201.625,162.483A3,3 0,0 1,204.625 165.483L204.625,165.483A3,3 0,0 1,201.625 168.483L158.625,168.483A3,3 0,0 1,155.625 165.483L155.625,165.483A3,3 0,0 1,158.625 162.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#2E854B"
-            android:fillType="evenOdd"
-            android:pathData="M155.625,73.483L204.167,73.483A4,4 0,0 1,208.167 77.483L208.167,115.483A4,4 0,0 1,204.167 119.483L155.625,119.483A4,4 0,0 1,151.625 115.483L151.625,77.483A4,4 0,0 1,155.625 73.483z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#E9F6FF"
-            android:fillType="evenOdd"
-            android:pathData="M85,99.741m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#17191A"
-            android:fillType="nonZero"
-            android:pathData="M88,98.741C88,99.841 87.1,100.741 86,100.741L84,100.741L84,102.741L87,102.741C87.55,102.741 88,103.191 88,103.741C88,104.291 87.55,104.741 87,104.741L83,104.741C82.45,104.741 82,104.291 82,103.741L82,100.741C82,99.641 82.9,98.741 84,98.741L86,98.741L86,96.741L83,96.741C82.45,96.741 82,96.291 82,95.741C82,95.191 82.45,94.741 83,94.741L86,94.741C87.1,94.741 88,95.641 88,96.741L88,98.741Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#E9F6FF"
-            android:fillType="evenOdd"
-            android:pathData="M85,55m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#17191A"
-            android:fillType="nonZero"
-            android:pathData="M86,60C85.45,60 85,59.55 85,59L85,52L84,52C83.45,52 83,51.55 83,51C83,50.45 83.45,50 84,50L86,50C86.55,50 87,50.45 87,51L87,59C87,59.55 86.55,60 86,60Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#E9F6FF"
-            android:fillType="evenOdd"
-            android:pathData="M85,144.483m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#17191A"
-            android:fillType="nonZero"
-            android:pathData="M88.005,142.983C88.005,143.813 87.335,144.483 86.505,144.483C87.335,144.483 88.005,145.153 88.005,145.983L88.005,147.483C88.005,148.593 87.105,149.483 86.005,149.483L82.995,149.483C82.445,149.483 81.995,149.033 81.995,148.483C81.995,147.933 82.445,147.483 82.995,147.483L86.005,147.483L85.995,145.483L84.995,145.483C84.445,145.483 83.995,145.033 83.995,144.483C83.995,143.933 84.445,143.483 84.995,143.483L85.995,143.483L86.005,141.483L82.995,141.483C82.445,141.483 82.005,141.033 82.005,140.483C82.005,139.933 82.445,139.483 82.995,139.483L86.005,139.483C87.105,139.483 88.005,140.383 88.005,141.483L88.005,142.983Z"
-            android:strokeWidth="1"
-            android:strokeColor="#00000000" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.5,144.483L137.5,144.483"
-            android:strokeWidth="1"
-            android:strokeAlpha="0.2"
-            android:strokeColor="#17191A"
-            android:strokeLineCap="square" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.5,55L137.5,55"
-            android:strokeWidth="1"
-            android:strokeAlpha="0.2"
-            android:strokeColor="#17191A"
-            android:strokeLineCap="square" />
-        <path
-            android:fillColor="#00000000"
-            android:fillType="evenOdd"
-            android:pathData="M105.5,99.741L137.5,99.741"
-            android:strokeWidth="1"
-            android:strokeAlpha="0.2"
-            android:strokeColor="#17191A"
-            android:strokeLineCap="square" />
-    </group>
+    android:width="360dp"
+    android:height="221dp"
+    android:viewportWidth="360"
+    android:viewportHeight="221">
+  <group>
+    <clip-path
+        android:pathData="M0.25,0.983h359.75v220h-359.75z"/>
+    <path
+        android:pathData="M195.849,96.341L197.849,96.341L195.849,96.341Z"
+        android:strokeWidth="1"
+        android:fillColor="#FF395A"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M205.031,182.759L154.923,182.759C149.821,182.757 145.686,178.621 145.685,173.519L145.698,48.54C145.705,43.443 149.839,39.315 154.936,39.315L205.045,39.315C210.138,39.325 214.262,43.455 214.265,48.549L214.265,173.53C214.263,178.628 210.13,182.759 205.031,182.759Z"
+        android:strokeWidth="1"
+        android:fillColor="#FFFFFF"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M205.031,182.759L154.923,182.759C149.821,182.757 145.686,178.621 145.685,173.519L145.698,48.54C145.705,43.443 149.839,39.315 154.936,39.315L205.045,39.315C210.138,39.325 214.262,43.455 214.265,48.549L214.265,173.53C214.263,178.628 210.13,182.759 205.031,182.759Z"
+        android:strokeWidth="3.567"
+        android:fillColor="#00000000"
+        android:strokeColor="#4A4A4A"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M155.5,48.483L204.042,48.483A4,4 0,0 1,208.042 52.483L208.042,61.483A4,4 0,0 1,204.042 65.483L155.5,65.483A4,4 0,0 1,151.5 61.483L151.5,52.483A4,4 0,0 1,155.5 48.483z"
+        android:strokeWidth="1"
+        android:fillColor="#E7E7E7"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M155.5,131.483L204.042,131.483A4,4 0,0 1,208.042 135.483L208.042,171.483A4,4 0,0 1,204.042 175.483L155.5,175.483A4,4 0,0 1,151.5 171.483L151.5,135.483A4,4 0,0 1,155.5 131.483z"
+        android:strokeWidth="1"
+        android:fillColor="#E7E7E7"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M158.5,164.483L201.5,164.483A3,3 0,0 1,204.5 167.483L204.5,167.483A3,3 0,0 1,201.5 170.483L158.5,170.483A3,3 0,0 1,155.5 167.483L155.5,167.483A3,3 0,0 1,158.5 164.483z"
+        android:strokeWidth="1"
+        android:fillColor="#0088B2"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M155.5,75.483L204.042,75.483A4,4 0,0 1,208.042 79.483L208.042,117.483A4,4 0,0 1,204.042 121.483L155.5,121.483A4,4 0,0 1,151.5 117.483L151.5,79.483A4,4 0,0 1,155.5 75.483z"
+        android:strokeWidth="1"
+        android:fillColor="#2E854B"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+  </group>
+  <group>
+    <clip-path
+        android:pathData="M0.25,0.983h359.75v220h-359.75z"/>
+    <path
+        android:pathData="M85,101.741m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+        android:strokeWidth="1"
+        android:fillColor="#E9F6FF"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M88,100.741C88,101.841 87.1,102.741 86,102.741L84,102.741L84,104.741L87,104.741C87.55,104.741 88,105.191 88,105.741C88,106.291 87.55,106.741 87,106.741L83,106.741C82.45,106.741 82,106.291 82,105.741L82,102.741C82,101.641 82.9,100.741 84,100.741L86,100.741L86,98.741L83,98.741C82.45,98.741 82,98.291 82,97.741C82,97.191 82.45,96.741 83,96.741L86,96.741C87.1,96.741 88,97.641 88,98.741L88,100.741Z"
+        android:strokeWidth="1"
+        android:fillColor="#17191A"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M85,57m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+        android:strokeWidth="1"
+        android:fillColor="#E9F6FF"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M86,62C85.45,62 85,61.55 85,61L85,54L84,54C83.45,54 83,53.55 83,53C83,52.45 83.45,52 84,52L86,52C86.55,52 87,52.45 87,53L87,61C87,61.55 86.55,62 86,62Z"
+        android:strokeWidth="1"
+        android:fillColor="#17191A"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M85,146.483m-12,0a12,12 0,1 1,24 0a12,12 0,1 1,-24 0"
+        android:strokeWidth="1"
+        android:fillColor="#E9F6FF"
+        android:fillType="evenOdd"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M88.005,144.983C88.005,145.813 87.335,146.483 86.505,146.483C87.335,146.483 88.005,147.153 88.005,147.983L88.005,149.483C88.005,150.593 87.105,151.483 86.005,151.483L82.995,151.483C82.445,151.483 81.995,151.033 81.995,150.483C81.995,149.933 82.445,149.483 82.995,149.483L86.005,149.483L85.995,147.483L84.995,147.483C84.445,147.483 83.995,147.033 83.995,146.483C83.995,145.933 84.445,145.483 84.995,145.483L85.995,145.483L86.005,143.483L82.995,143.483C82.445,143.483 82.005,143.033 82.005,142.483C82.005,141.933 82.445,141.483 82.995,141.483L86.005,141.483C87.105,141.483 88.005,142.383 88.005,143.483L88.005,144.983Z"
+        android:strokeWidth="1"
+        android:fillColor="#17191A"
+        android:fillType="nonZero"
+        android:strokeColor="#00000000"/>
+    <path
+        android:pathData="M105.5,146.483L137.5,146.483"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#17191A"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+    <path
+        android:pathData="M105.5,57L137.5,57"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#17191A"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+    <path
+        android:pathData="M105.5,101.741L137.5,101.741"
+        android:strokeWidth="1"
+        android:fillColor="#00000000"
+        android:strokeColor="#17191A"
+        android:fillType="evenOdd"
+        android:strokeLineCap="square"/>
+  </group>
 </vector>
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
index d37251f91..92c15258c 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
@@ -72,7 +72,6 @@
 
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/main_overview_risk_subtitle"
-                    style="@style/row"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
@@ -81,26 +80,22 @@
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toBottomOf="@+id/main_overview_risk">
 
-                    <TextView
+                    <include
                         android:id="@+id/main_overview_risk_subtitle_text"
-                        style="@style/headline6"
+                        layout="@layout/include_main_overview_glossary"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="@dimen/guideline_body_title"
-                        android:focusable="false"
-                        android:text="@string/main_overview_subtitle_risk_levels"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent" />
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:subtitle="@{@string/main_overview_subtitle_risk_levels}" />
 
                     <include
                         android:id="@+id/main_overview_risk_increased_risk"
-                        layout="@layout/include_row"
+                        layout="@layout/include_main_overview_row"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/spacing_small"
-                        app:hideDivider="@{true}"
-                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:icon="@{@drawable/ic_main_overview_circle}"
                         app:iconTint="@{@color/colorSemanticHighRisk}"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
@@ -109,11 +104,10 @@
 
                     <include
                         android:id="@+id/main_overview_risk_low_risk"
-                        layout="@layout/include_row"
+                        layout="@layout/include_main_overview_row"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        app:hideDivider="@{true}"
-                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:icon="@{@drawable/ic_main_overview_circle}"
                         app:iconTint="@{@color/colorSemanticLowRisk}"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
@@ -122,11 +116,10 @@
 
                     <include
                         android:id="@+id/main_overview_risk_unknown_risk"
-                        layout="@layout/include_row"
+                        layout="@layout/include_main_overview_row"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        app:hideDivider="@{true}"
-                        app:iconStart="@{@drawable/ic_main_overview_circle}"
+                        app:icon="@{@drawable/ic_main_overview_circle}"
                         app:iconTint="@{@color/colorSemanticNeutralRisk}"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
diff --git a/Corona-Warn-App/src/main/res/layout/include_main_overview_glossary.xml b/Corona-Warn-App/src/main/res/layout/include_main_overview_glossary.xml
index d4d5ca870..ca4ae1189 100644
--- a/Corona-Warn-App/src/main/res/layout/include_main_overview_glossary.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_main_overview_glossary.xml
@@ -4,6 +4,8 @@
 
     <data>
 
+        <import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" />
+
         <variable
             name="subtitle"
             type="String" />
@@ -45,6 +47,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_small"
                 android:text="@{body}"
+                android:visibility="@{FormatterHelper.formatVisibilityText(body)}"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="@+id/main_overview_glossary_subtitle"
diff --git a/Corona-Warn-App/src/main/res/layout/include_main_overview_row.xml b/Corona-Warn-App/src/main/res/layout/include_main_overview_row.xml
new file mode 100644
index 000000000..ee264f226
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/layout/include_main_overview_row.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <data>
+
+        <import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" />
+
+        <variable
+            name="subtitle"
+            type="String" />
+
+        <variable
+            name="iconTint"
+            type="Integer" />
+
+        <variable
+            name="icon"
+            type="android.graphics.drawable.Drawable" />
+
+
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/main_overview_row"
+            style="@style/rowOverview"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <ImageView
+                android:layout_width="@dimen/icon_size_main_card"
+                android:layout_height="@dimen/icon_size_main_card"
+                android:importantForAccessibility="no"
+                android:src="@{icon}"
+                android:tint="@{FormatterHelper.formatColorIcon(iconTint)}"
+                android:visibility="@{FormatterHelper.formatVisibilityIcon(icon)}"
+                app:layout_constraintBottom_toBottomOf="@+id/main_overview_row_subtitle"
+                app:layout_constraintEnd_toStartOf="@+id/main_overview_row_subtitle"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="@+id/main_overview_row_subtitle" />
+
+            <TextView
+                android:id="@+id/main_overview_row_subtitle"
+                style="@style/subtitle"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:text="@{subtitle}"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toEndOf="@+id/guideline_body"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <androidx.constraintlayout.widget.Guideline
+                android:id="@+id/guideline_body"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                app:layout_constraintGuide_begin="@dimen/guideline_body_title" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/layout/include_row.xml b/Corona-Warn-App/src/main/res/layout/include_row.xml
index 385fc741f..17a0cd024 100644
--- a/Corona-Warn-App/src/main/res/layout/include_row.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_row.xml
@@ -6,24 +6,16 @@
 
         <import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" />
 
-        <variable
-            name="tracingViewModel"
-            type="de.rki.coronawarnapp.ui.viewmodel.TracingViewModel" />
-
         <variable
             name="subtitle"
             type="String" />
 
-        <variable
-            name="icon"
-            type="android.graphics.drawable.Drawable" />
-
         <variable
             name="iconTint"
             type="Integer" />
 
         <variable
-            name="iconStart"
+            name="icon"
             type="android.graphics.drawable.Drawable" />
 
         <variable
@@ -53,33 +45,22 @@
                 android:layout_width="@dimen/icon_size_main_card"
                 android:layout_height="@dimen/icon_size_main_card"
                 android:importantForAccessibility="no"
-                android:src="@{iconStart}"
+                android:src="@{icon}"
                 android:tint="@{FormatterHelper.formatColorIcon(iconTint)}"
-                android:visibility="@{FormatterHelper.formatVisibilityIcon(iconStart)}"
-                app:layout_constraintBottom_toBottomOf="@+id/main_row_item_headline"
-                app:layout_constraintEnd_toStartOf="@+id/main_row_item_headline"
+                android:visibility="@{FormatterHelper.formatVisibilityIcon(icon)}"
+                app:layout_constraintBottom_toBottomOf="@+id/main_row_item_subtitle"
+                app:layout_constraintEnd_toStartOf="@+id/main_row_item_subtitle"
                 app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="@+id/main_row_item_headline" />
+                app:layout_constraintTop_toTopOf="@+id/main_row_item_subtitle" />
 
             <TextView
-                android:id="@+id/main_row_item_headline"
+                android:id="@+id/main_row_item_subtitle"
                 style="@style/subtitle"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:text="@{subtitle}"
-                app:layout_constraintEnd_toStartOf="@+id/main_row_item_icon"
-                app:layout_constraintStart_toEndOf="@+id/guideline_body"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <ImageView
-                android:id="@+id/main_row_item_icon"
-                style="@style/icon"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:importantForAccessibility="no"
-                android:src="@{icon}"
-                app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toEndOf="@+id/guideline_body"
                 app:layout_constraintTop_toTopOf="parent" />
 
             <androidx.constraintlayout.widget.Guideline
diff --git a/Corona-Warn-App/src/main/res/values/dimens.xml b/Corona-Warn-App/src/main/res/values/dimens.xml
index 3c52614f9..aa4bbad5f 100644
--- a/Corona-Warn-App/src/main/res/values/dimens.xml
+++ b/Corona-Warn-App/src/main/res/values/dimens.xml
@@ -63,8 +63,8 @@
     <dimen name="radius_card">4dp</dimen>
     <dimen name="icon_size">20dp</dimen>
     <dimen name="icon_size_risk_card">40dp</dimen>
-    <dimen name="icon_size_main_card">35dp</dimen>
-    <dimen name="icon_size_main_card_end">35dp</dimen>
+    <dimen name="icon_size_main_card">40dp</dimen>
+    <dimen name="icon_size_main_card_end">40dp</dimen>
     <dimen name="icon_size_button">40dp</dimen>
     <dimen name="icon_size_settings">40dp</dimen>
     <dimen name="icon_size_risk_details_behavior">25dp</dimen>
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index 270eea720..8607dc7e6 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -216,7 +216,7 @@
     <!-- XBUT: risk card - activate tracing -->
     <string name="risk_card_button_enable_tracing">Risiko-Ermittlung einschalten</string>
     <!-- XTXT: risk card - tracing is off, user should activate to get an updated risk level -->
-    <string name="risk_card_body_tracing_off">Aktivieren Sie die Risiko-Ermittlung, um Ihre heutige Risiko-Einschätzung zu berechnen.</string>
+    <string name="risk_card_body_tracing_off">Aktivieren Sie die Risiko-Ermittlung, um Ihren heutige Risiko-Einschätzung zu berechnen.</string>
     <!-- XHED: risk card - low risk headline -->
     <string name="risk_card_low_risk_headline">Niedriges Risiko</string>
     <!-- XHED: risk card - increased risk headline -->
@@ -981,6 +981,8 @@
     <string name="errors_not_enough_device_storage">Sie haben nicht genug Speicherplatz.</string>
     <!-- XTXT: error dialog - detailed text if there is error with Google API  -->
     <string name="errors_communication_with_api">Fehler bei Kommunikation mit Google API.</string>
+    <!-- XTXT: error dialog - detailed text if there is an error during external navigation / external action -->
+    <string name="errors_external_action">Diese Aktion ist aktuell leider nicht verfügbar. Bitte kontaktieren Sie die Hotline.</string>
 
     <!-- ####################################
                Generic Error Messages
diff --git a/Corona-Warn-App/src/main/res/values/styles.xml b/Corona-Warn-App/src/main/res/values/styles.xml
index 26dde88b1..8dd30ddfe 100644
--- a/Corona-Warn-App/src/main/res/values/styles.xml
+++ b/Corona-Warn-App/src/main/res/values/styles.xml
@@ -108,6 +108,11 @@
         <item name="android:paddingStart">@dimen/match_constraint</item>
     </style>
 
+    <style name="rowOverview" parent="@style/row">
+        <item name="android:paddingTop">@dimen/spacing_tiny</item>
+        <item name="android:paddingBottom">@dimen/spacing_tiny</item>
+    </style>
+
     <!-- ####################################
                     Card
     ###################################### -->
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt
index 23ebd79d7..18c475ede 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt
@@ -40,7 +40,7 @@ class SubmitDiagnosisKeysTransactionTest {
         coEvery { DiagnosisKeyService.asyncSubmitKeys(authString, listOf()) } just Runs
 
         runBlocking {
-             SubmitDiagnosisKeysTransaction.start("123", listOf())
+            SubmitDiagnosisKeysTransaction.start("123", listOf())
 
             coVerifyOrder {
                 DiagnosisKeyService.asyncSubmitKeys(authString, listOf())
@@ -64,7 +64,7 @@ class SubmitDiagnosisKeysTransactionTest {
         coEvery { DiagnosisKeyService.asyncSubmitKeys(authString, capture(testList)) } just Runs
 
         runBlocking {
-             SubmitDiagnosisKeysTransaction.start("123", listOf(key))
+            SubmitDiagnosisKeysTransaction.start("123", listOf(key))
 
             coVerifyOrder {
                 DiagnosisKeyService.asyncSubmitKeys(authString, any())
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CallHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
similarity index 78%
rename from Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CallHelperTest.kt
rename to Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
index f32cd8fc0..bfe5717ab 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CallHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt
@@ -9,9 +9,9 @@ import io.mockk.verify
 import org.junit.Test
 
 /**
- * CallHelper test.
+ * ExternalActionHelper test.
  */
-class CallHelperTest {
+class ExternalActionHelperTest {
 
     /**
      * Test activity called.
@@ -20,7 +20,7 @@ class CallHelperTest {
     fun testCall() {
         val fragment = mockk<Fragment>()
         every { fragment.startActivity(any()) } just Runs
-        CallHelper.call(fragment, "+77777777777")
+        ExternalActionHelper.call(fragment, "+77777777777")
         verify(exactly = 1) { fragment.startActivity(any()) }
     }
 }
-- 
GitLab