diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml
index b6e0b96a71048be33c020c09f603a7e42041b382..c9ea631a2771d87afddc4286cd75eb42b461ffa1 100644
--- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml
+++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_main.xml
@@ -97,7 +97,7 @@
                     android:layout_width="@dimen/match_constraint"
                     android:layout_height="wrap_content"
                     android:focusable="false"
-                    android:text="@{FormatterSettingsHelper.formatTracingDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    android:text="@{FormatterSettingsHelper.formatTracingDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
@@ -107,8 +107,8 @@
                     android:layout_width="@dimen/icon_size_main_card"
                     android:layout_height="@dimen/icon_size_main_card"
                     android:importantForAccessibility="no"
-                    app:animation="@{FormatterSettingsHelper.formatTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    app:animation_tint="@{FormatterSettingsHelper.formatTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:animation="@{FormatterSettingsHelper.formatTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    app:animation_tint="@{FormatterSettingsHelper.formatTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
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 41410d237e76fe53629c93c55b186e212c0e3272..c14ac3879bea3b2231dcbfa6c6a45f4ff7ae28cd 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
@@ -16,6 +16,7 @@ import de.rki.coronawarnapp.exception.reporting.report
 import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient
 import de.rki.coronawarnapp.nearby.InternalExposureNotificationPermissionHelper
 import de.rki.coronawarnapp.storage.LocalData
+import de.rki.coronawarnapp.storage.SettingsRepository.isLocationEnabled
 import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
@@ -114,11 +115,14 @@ class SettingsTracingFragment : Fragment(),
                 settingsViewModel.isBluetoothEnabled.value ?: throw IllegalArgumentException()
             val isConnectionEnabled =
                 settingsViewModel.isConnectionEnabled.value ?: throw IllegalArgumentException()
+            val isLocationEnabled =
+                settingsViewModel.isLocationEnabled.value ?: throw IllegalArgumentException()
             // check if the row is clickable, this adds the switch behaviour
             val isEnabled = formatTracingSwitchEnabled(
                 isTracingEnabled,
                 isBluetoothEnabled,
-                isConnectionEnabled
+                isConnectionEnabled,
+                isLocationEnabled
             )
             if (isEnabled) startStopTracing()
         }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelper.kt
index a55eb0dc6d5c732892291893d4bf18ce3fd3e964..17a7a340c432973b53ac3fff8b29d799021d9b6d 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelper.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelper.kt
@@ -72,16 +72,17 @@ fun formatNotificationIllustrationText(notifications: Boolean): String =
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return String
  */
-fun formatTracingStatusText(tracing: Boolean, bluetooth: Boolean, connection: Boolean): String {
+fun formatTracingStatusText(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): String {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION, TracingStatusHelper.BLUETOOTH ->
             appContext.getString(R.string.settings_tracing_status_restricted)
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getString(R.string.settings_tracing_status_active)
-        TracingStatusHelper.TRACING_INACTIVE ->
+        TracingStatusHelper.TRACING_INACTIVE, TracingStatusHelper.LOCATION ->
             appContext.getString(R.string.settings_tracing_status_inactive)
         else -> ""
     }
@@ -102,15 +103,18 @@ fun formatSwitchContentDescription(subtitle: String, status: String): String = "
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return String
  */
-fun formatTracingDescription(tracing: Boolean, bluetooth: Boolean, connection: Boolean): String {
+fun formatTracingDescription(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): String {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION ->
             appContext.getString(R.string.settings_tracing_body_connection_inactive)
         TracingStatusHelper.BLUETOOTH ->
             appContext.getString(R.string.settings_tracing_body_bluetooth_inactive)
+        TracingStatusHelper.LOCATION ->
+            appContext.getString(R.string.settings_tracing_body_inactive_location)
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getString(R.string.settings_tracing_body_active)
         TracingStatusHelper.TRACING_INACTIVE ->
@@ -126,21 +130,26 @@ fun formatTracingDescription(tracing: Boolean, bluetooth: Boolean, connection: B
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return String
  */
 fun formatTracingContentDescription(
     tracing: Boolean,
     bluetooth: Boolean,
-    connection: Boolean
+    connection: Boolean,
+    location: Boolean
 ): String {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION ->
             appContext.getString(R.string.settings_tracing_body_connection_inactive) +
                     " " + appContext.getString(R.string.accessibility_button)
         TracingStatusHelper.BLUETOOTH ->
             appContext.getString(R.string.settings_tracing_body_bluetooth_inactive) +
                     " " + appContext.getString(R.string.accessibility_button)
+        TracingStatusHelper.LOCATION ->
+            appContext.getString(R.string.settings_tracing_body_inactive_location) +
+                    " " + appContext.getString(R.string.accessibility_button)
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getString(R.string.settings_tracing_body_active) +
                     " " + appContext.getString(R.string.accessibility_button)
@@ -171,15 +180,17 @@ fun formatTracingStatusBody(activeTracingDaysInRetentionPeriod: Long): String {
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return String
  */
 fun formatTracingIllustrationText(
     tracing: Boolean,
     bluetooth: Boolean,
-    connection: Boolean
+    connection: Boolean,
+    location: Boolean
 ): String {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION ->
             appContext.getString(R.string.settings_tracing_connection_illustration_description_inactive)
         TracingStatusHelper.BLUETOOTH ->
@@ -259,16 +270,17 @@ fun formatNotificationImage(notifications: Boolean): Drawable? =
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return
  */
-fun formatSettingsTracingIconColor(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Int {
+fun formatSettingsTracingIconColor(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Int {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION, TracingStatusHelper.BLUETOOTH ->
             appContext.getColor(R.color.colorTextPrimary3)
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getColor(R.color.colorAccentTintIcon)
-        TracingStatusHelper.TRACING_INACTIVE ->
+        TracingStatusHelper.TRACING_INACTIVE, TracingStatusHelper.LOCATION ->
             appContext.getColor(R.color.colorTextSemanticRed)
         else -> appContext.getColor(R.color.colorTextSemanticRed)
     }
@@ -280,19 +292,23 @@ fun formatSettingsTracingIconColor(tracing: Boolean, bluetooth: Boolean, connect
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return
  */
 fun formatSettingsTracingIcon(
     tracing: Boolean,
     bluetooth: Boolean,
-    connection: Boolean
+    connection: Boolean,
+    location: Boolean
 ): Drawable? {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.CONNECTION,
         TracingStatusHelper.BLUETOOTH,
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getDrawable(R.drawable.ic_settings_tracing_active_small)
+        TracingStatusHelper.LOCATION ->
+            appContext.getDrawable(R.drawable.ic_settings_location_inactive_small)
         TracingStatusHelper.TRACING_INACTIVE ->
             appContext.getDrawable(R.drawable.ic_settings_tracing_inactive_small)
         else -> appContext.getDrawable(R.drawable.ic_settings_tracing_inactive_small)
@@ -328,10 +344,11 @@ fun formatSettingsBackgroundPriorityIconColor(
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Boolean
  */
-fun formatTracingSwitch(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Boolean {
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+fun formatTracingSwitch(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Boolean {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.TRACING_ACTIVE -> true
         else -> false
     }
@@ -343,10 +360,11 @@ fun formatTracingSwitch(tracing: Boolean, bluetooth: Boolean, connection: Boolea
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Boolean
  */
-fun formatTracingSwitchEnabled(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Boolean {
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+fun formatTracingSwitchEnabled(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Boolean {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.TRACING_ACTIVE, TracingStatusHelper.TRACING_INACTIVE -> true
         else -> false
     }
@@ -358,12 +376,14 @@ fun formatTracingSwitchEnabled(tracing: Boolean, bluetooth: Boolean, connection:
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Drawable
  */
-fun formatTracingIcon(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Int? {
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+fun formatTracingIcon(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Int? {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.BLUETOOTH -> R.drawable.ic_settings_tracing_bluetooth_inactive
         TracingStatusHelper.CONNECTION -> R.drawable.ic_settings_tracing_connection_inactive
+        TracingStatusHelper.LOCATION -> R.drawable.ic_settings_location_inactive_small
         TracingStatusHelper.TRACING_ACTIVE -> R.raw.ic_settings_tracing_animated
         else -> R.drawable.ic_settings_tracing_inactive
     }
@@ -375,11 +395,12 @@ fun formatTracingIcon(tracing: Boolean, bluetooth: Boolean, connection: Boolean)
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Int
  */
-fun formatTracingIconColor(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Int {
+fun formatTracingIconColor(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Int {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.TRACING_ACTIVE ->
             appContext.getColor(R.color.colorAccentTintIcon)
         else ->
@@ -393,11 +414,12 @@ fun formatTracingIconColor(tracing: Boolean, bluetooth: Boolean, connection: Boo
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Drawable
  */
-fun formatTracingStatusImage(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Drawable? {
+fun formatTracingStatusImage(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Drawable? {
     val appContext = CoronaWarnApplication.getAppContext()
-    return when (tracingStatusHelper(tracing, bluetooth, connection)) {
+    return when (tracingStatusHelper(tracing, bluetooth, connection, location)) {
         TracingStatusHelper.BLUETOOTH ->
             appContext.getDrawable(R.drawable.ic_settings_illustration_bluetooth_off)
         TracingStatusHelper.CONNECTION ->
@@ -415,14 +437,16 @@ fun formatTracingStatusImage(tracing: Boolean, bluetooth: Boolean, connection: B
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Int
  */
-fun formatTracingStatusConnection(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Int =
+fun formatTracingStatusConnection(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Int =
     formatVisibility(
         tracingStatusHelper(
             tracing,
             bluetooth,
-            connection
+            connection,
+            location
         ) == TracingStatusHelper.CONNECTION
     )
 
@@ -432,18 +456,21 @@ fun formatTracingStatusConnection(tracing: Boolean, bluetooth: Boolean, connecti
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Int
  */
 fun formatTracingStatusVisibilityBluetooth(
     tracing: Boolean,
     bluetooth: Boolean,
-    connection: Boolean
+    connection: Boolean,
+    location: Boolean
 ): Int =
     formatVisibility(
         tracingStatusHelper(
             tracing,
             bluetooth,
-            connection
+            connection,
+            location
         ) == TracingStatusHelper.BLUETOOTH
     )
 
@@ -453,14 +480,16 @@ fun formatTracingStatusVisibilityBluetooth(
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Int
  */
 fun formatTracingStatusVisibilityTracing(
     tracing: Boolean,
     bluetooth: Boolean,
-    connection: Boolean
+    connection: Boolean,
+    location: Boolean
 ): Int {
-    val tracingStatus = tracingStatusHelper(tracing, bluetooth, connection)
+    val tracingStatus = tracingStatusHelper(tracing, bluetooth, connection, location)
     return formatVisibility(
         tracingStatus == TracingStatusHelper.TRACING_ACTIVE ||
                 tracingStatus == TracingStatusHelper.TRACING_INACTIVE
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelper.kt
index f7328e1aa89bb511a90c5d5f09d7cfa5f0c6e9d0..419fecc8da05c4d861825be448f535ba948a2d1b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelper.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelper.kt
@@ -9,13 +9,15 @@ object TracingStatusHelper {
     const val TRACING_INACTIVE = 1
     const val BLUETOOTH = 2
     const val CONNECTION = 3
+    const val LOCATION = 4
 }
 
 /**
  * The following table explains the different stati which can appear in the ui.
- * This follows this prioritization: Tracing, Bluetooth, Connection
+ * This follows this prioritization: Tracing, Bluetooth, Connection, Location
  * Connection will only be relevant in one exact case, Bluetooth is relevant in two different cases,
- * but independently from the Connection status. And in every other case Tracing will be shown.
+ * but independently from the Connection status. And in every other case Tracing will be shown
+ *  except when location is disabled in which case a location related warning will always be shown as it is required for bluetooth tracing.
  *
  * | Tracing | Bluetooth | Connection | Result     |
  * |---------|-----------|------------|------------|
@@ -29,16 +31,25 @@ object TracingStatusHelper {
  * | ON      | ON        | OFF        | CONNECTION |
  * *circle has to be disabled via another formatter
  *
+ * NB --- If location is disabled, the status will always show a location related warning, regardless of the other connectivity states.
+ *
  * @param tracing
  * @param bluetooth
  * @param connection
+ * @param location
  * @return Int
  */
-fun tracingStatusHelper(tracing: Boolean, bluetooth: Boolean, connection: Boolean): Int {
+fun tracingStatusHelper(tracing: Boolean, bluetooth: Boolean, connection: Boolean, location: Boolean): Int {
     return if (tracing && bluetooth && !connection) {
         TracingStatusHelper.CONNECTION
-    } else if (tracing && !bluetooth) {
+    } else if (tracing && location && !connection) {
+        TracingStatusHelper.CONNECTION
+    } else if (tracing && location && !bluetooth) {
         TracingStatusHelper.BLUETOOTH
+    } else if (tracing && !location) {
+        TracingStatusHelper.LOCATION
+    } else if (!location) {
+        TracingStatusHelper.LOCATION
     } else if (tracing) {
         TracingStatusHelper.TRACING_ACTIVE
     } else {
diff --git a/Corona-Warn-App/src/main/res/drawable/ic_settings_location_inactive_small.xml b/Corona-Warn-App/src/main/res/drawable/ic_settings_location_inactive_small.xml
new file mode 100644
index 0000000000000000000000000000000000000000..83082663fc22f90d9ff235e98a9c6ce188bc32b6
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/drawable/ic_settings_location_inactive_small.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="41dp"
+    android:height="40dp"
+    android:viewportWidth="41"
+    android:viewportHeight="40">
+  <path
+      android:pathData="M20.5,14.5C21.88,14.5 23,15.62 23,17C23,17.74 22.67,18.39 22.17,18.85L25.8,22.48C26.78,20.62 27.5,18.68 27.5,17C27.5,13.13 24.37,10 20.5,10C18.52,10 16.74,10.83 15.46,12.15L18.65,15.34C19.11,14.82 19.76,14.5 20.5,14.5ZM24.87,24.1L20.24,19.47L20.13,19.36L11.77,11L10.5,12.27L13.68,15.45C13.57,15.95 13.5,16.47 13.5,17C13.5,22.25 20.5,30 20.5,30C20.5,30 22.17,28.15 23.88,25.65L27.23,29L28.5,27.73L24.87,24.1Z"
+      android:strokeWidth="1"
+      android:fillColor="#C00F2D"
+      android:fillType="nonZero"
+      android:strokeColor="#00000000"/>
+</vector>
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main.xml b/Corona-Warn-App/src/main/res/layout/fragment_main.xml
index db25a3b62509f578377020b3256282b8d701256b..35dc3600f18a3b26521fd02f03a14cd8a747456d 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_main.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_main.xml
@@ -102,8 +102,8 @@
                     android:layout_width="@dimen/match_constraint"
                     android:layout_height="wrap_content"
                     android:focusable="false"
-                    android:contentDescription="@{FormatterSettingsHelper.formatTracingContentDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    android:text="@{FormatterSettingsHelper.formatTracingDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    android:contentDescription="@{FormatterSettingsHelper.formatTracingContentDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    android:text="@{FormatterSettingsHelper.formatTracingDescription(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
@@ -113,8 +113,8 @@
                     android:layout_width="@dimen/icon_size_main_card"
                     android:layout_height="@dimen/icon_size_main_card"
                     android:importantForAccessibility="no"
-                    app:animation="@{FormatterSettingsHelper.formatTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    app:animation_tint="@{FormatterSettingsHelper.formatTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:animation="@{FormatterSettingsHelper.formatTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    app:animation_tint="@{FormatterSettingsHelper.formatTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_settings.xml b/Corona-Warn-App/src/main/res/layout/fragment_settings.xml
index 3051209a2f00d76b70441277c2f70e77a15d9745..4df42821d4d0137e6cf212041570d3fa722c7090 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_settings.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_settings.xml
@@ -54,13 +54,13 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
                     app:body="@{@string/settings_tracing_body_description}"
-                    app:color="@{FormatterSettingsHelper.formatSettingsTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    app:icon="@{FormatterSettingsHelper.formatSettingsTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:color="@{FormatterSettingsHelper.formatSettingsTracingIconColor(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    app:icon="@{FormatterSettingsHelper.formatSettingsTracingIcon(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent"
                     app:showDivider="@{true}"
-                    app:statusText="@{FormatterSettingsHelper.formatTracingStatusText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:statusText="@{FormatterSettingsHelper.formatTracingStatusText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:subtitle="@{@string/settings_tracing_title}"
                     app:tracingViewModel="@{tracingViewModel}" />
 
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml b/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml
index a177b0e9eb52050b02501edd759d9b5143d20ce2..151d9c42be85f8a0be11157d0222a65a7dace6f7 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml
@@ -55,8 +55,8 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     app:headline="@{@string/settings_tracing_headline}"
-                    app:illustration="@{FormatterSettingsHelper.formatTracingStatusImage(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    app:illustrationDescription="@{FormatterSettingsHelper.formatTracingIllustrationText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:illustration="@{FormatterSettingsHelper.formatTracingStatusImage(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    app:illustrationDescription="@{FormatterSettingsHelper.formatTracingIllustrationText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
@@ -67,13 +67,13 @@
                     android:layout_width="@dimen/match_constraint"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
-                    app:enabled="@{FormatterSettingsHelper.formatTracingSwitchEnabled(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:enabled="@{FormatterSettingsHelper.formatTracingSwitchEnabled(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toBottomOf="@+id/settings_tracing_header_details"
                     app:showDivider="@{true}"
-                    app:status="@{FormatterSettingsHelper.formatTracingSwitch(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
-                    app:statusText="@{FormatterSettingsHelper.formatTracingStatusText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                    app:status="@{FormatterSettingsHelper.formatTracingSwitch(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
+                    app:statusText="@{FormatterSettingsHelper.formatTracingStatusText(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                     app:subtitle="@{@string/settings_tracing_title}" />
 
                 <androidx.constraintlayout.widget.ConstraintLayout
@@ -90,7 +90,7 @@
                         layout="@layout/include_tracing_status_card"
                         android:layout_width="@dimen/match_constraint"
                         android:layout_height="wrap_content"
-                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusVisibilityBluetooth(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusVisibilityBluetooth(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                         app:body="@{@string/settings_tracing_status_bluetooth_body}"
                         app:buttonText="@{@string/settings_tracing_status_bluetooth_button}"
                         app:headline="@{@string/settings_tracing_status_bluetooth_headline}"
@@ -104,7 +104,7 @@
                         layout="@layout/include_tracing_status_card"
                         android:layout_width="@dimen/match_constraint"
                         android:layout_height="wrap_content"
-                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusConnection(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusConnection(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                         app:body="@{@string/settings_tracing_status_connection_body}"
                         app:buttonText="@{@string/settings_tracing_status_connection_button}"
                         app:headline="@{@string/settings_tracing_status_connection_headline}"
@@ -118,7 +118,7 @@
                         android:layout_width="@dimen/match_constraint"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="@dimen/spacing_tiny"
-                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusVisibilityTracing(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled())}"
+                        android:visibility="@{FormatterSettingsHelper.formatTracingStatusVisibilityTracing(tracingViewModel.isTracingEnabled(), settingsViewModel.isBluetoothEnabled(), settingsViewModel.isConnectionEnabled(), settingsViewModel.isLocationEnabled())}"
                         android:focusable="true"
                         app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                         app:layout_constraintStart_toEndOf="@+id/guideline_start"
diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml
index 3c11051768f973f2a60232a07bedbf70bfe54b83..f66dd130a451889f72eca033fa0cf9c31fe71f55 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -439,6 +439,8 @@
     <string name="settings_tracing_body_active">"Risiko-Ermittlung aktiv"</string>
     <!-- XTXT: settings(tracing) - shows status under header in home, inactive -->
     <string name="settings_tracing_body_inactive">"Risiko-Ermittlung gestoppt"</string>
+    <!-- XTXT: settings(tracing) - shows status under header in home, inactive location -->
+    <string name="settings_tracing_body_inactive_location">"Ortungsdienste deaktiviert"</string>
     <!-- YTXT: settings(tracing) - explains tracings -->
     <string name="settings_tracing_body_text">"Um zu erkennen, ob für Sie ein Infektionsrisiko vorliegt, müssen Sie die Risiko-Ermittlung aktivieren. Die Risiko-Ermittlung funktioniert, indem Ihr Handy per Bluetooth verschlüsselte Zufallscodes anderer Nutzerinnen und Nutzer empfängt und Ihren eigenen Zufallscode an deren Smartphones weitergibt. Die Funktion lässt sich jederzeit wieder deaktivieren."<xliff:g id="line_break">"\n"</xliff:g><xliff:g id="line_break">"\n"</xliff:g>"Die verschlüsselten Zufallscodes geben nur Auskunft über das Datum, die Dauer und die anhand der Signalstärke berechnete Entfernung zu Ihren Mitmenschen. Persönliche Daten wie Name, Adresse oder Aufenthaltsort werden zu keiner Zeit erfasst. Konkrete Rückschlüsse auf Personen sind nicht möglich."</string>
     <!-- XTXT: settings(tracing) - status next to switch under title -->
diff --git a/Corona-Warn-App/src/main/res/values-en/strings.xml b/Corona-Warn-App/src/main/res/values-en/strings.xml
index e8caff2c876d52878781f9fd25e16310a493c1e6..6ac5e473c020eb05bc964fa0fa1c1b5889e3d2b6 100644
--- a/Corona-Warn-App/src/main/res/values-en/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-en/strings.xml
@@ -431,6 +431,8 @@
     <string name="settings_tracing_body_active">"Exposure Logging Active"</string>
     <!-- XTXT: settings(tracing) - shows status under header in home, inactive -->
     <string name="settings_tracing_body_inactive">"Exposure logging stopped"</string>
+    <!-- XTXT: settings(tracing) - shows status under header in home, inactive location -->
+    <string name="settings_tracing_body_inactive_location">"Location services disabled"</string>
     <!-- YTXT: settings(tracing) - explains tracings -->
     <string name="settings_tracing_body_text">"Exposure logging works by your device receiving, via Bluetooth, encrypted random IDs of other users and passing your random ID to their devices. This feature can be deactivated at any time. "<xliff:g id="line_break">"\n"</xliff:g><xliff:g id="line_break">"\n"</xliff:g>"Encrypted random IDs only pass information about date, duration, and proximity (calculated using signal strength) to other people. Personal data such as name, address, and location is never recorded. Individuals cannot be identified."</string>
     <!-- XTXT: settings(tracing) - status next to switch under title -->
diff --git a/Corona-Warn-App/src/main/res/values-tr/strings.xml b/Corona-Warn-App/src/main/res/values-tr/strings.xml
index 34934ab8ffdb9d2018bea8a4cada148326e75096..e206399a85f60153c11ee22f7bf493af39941959 100644
--- a/Corona-Warn-App/src/main/res/values-tr/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-tr/strings.xml
@@ -429,6 +429,8 @@
     <string name="settings_tracing_status_active">"Etkin"</string>
     <!-- XTXT: settings(tracing) - status next to switch under title -->
     <string name="settings_tracing_status_inactive">"Durduruldu"</string>
+    <!-- XTXT: settings(tracing) - shows status under header in home, inactive location -->
+    <string name="settings_tracing_body_inactive_location">"Konum hizmetleri devre dışı"</string>
     <!-- XTXT: settings(tracing) - status next to switch under title -->
     <string name="settings_tracing_status_restricted">"Sınırlı"</string>
     <!-- XTXT: settings(tracing) - shows status under header in home, no internet -->
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index 8a5cd8cf4e5161f04f6c64ed9e71509b24021658..243a484df3f48837237b879d78bf3edf68f7015e 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -427,6 +427,8 @@
     <string name="settings_tracing_body_active">"Exposure logging active"</string>
     <!-- XTXT: settings(tracing) - shows status under header in home, inactive -->
     <string name="settings_tracing_body_inactive">"Exposure logging stopped"</string>
+    <!-- XTXT: settings(tracing) - shows status under header in home, inactive location -->
+    <string name="settings_tracing_body_inactive_location">"Location services disabled"</string>
     <!-- YTXT: settings(tracing) - explains tracings -->
     <string name="settings_tracing_body_text">"Exposure logging works by your device receiving, via Bluetooth, encrypted random IDs of other users and passing your random ID to their devices. This feature can be deactivated at any time. "<xliff:g id="line_break">"\n"</xliff:g><xliff:g id="line_break">"\n"</xliff:g>"Encrypted random IDs only pass information about date, duration, and proximity (calculated using signal strength) to other people. Personal data such as name, address, and location is never recorded. Individuals cannot be identified."</string>
     <!-- XTXT: settings(tracing) - status next to switch under title -->
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelperTest.kt
index cc70f791124859e300a2366e3f79d4aa6593a2ad..386d94615c8b75efb5009a1586eaf72e870aa3df 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/FormatterSettingsHelperTest.kt
@@ -72,6 +72,7 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         iValue: Int
     ) {
         every { context.getString(R.string.settings_tracing_status_restricted) } returns R.string.settings_tracing_status_restricted.toString()
@@ -81,7 +82,8 @@ class FormatterSettingsHelperTest {
         val result = formatTracingStatusText(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(result, `is`((context.getString(iValue))))
     }
@@ -90,17 +92,21 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         iValue: Int
     ) {
         every { context.getString(R.string.settings_tracing_body_bluetooth_inactive) } returns R.string.settings_tracing_body_bluetooth_inactive.toString()
         every { context.getString(R.string.settings_tracing_body_connection_inactive) } returns R.string.settings_tracing_body_connection_inactive.toString()
         every { context.getString(R.string.settings_tracing_body_active) } returns R.string.settings_tracing_body_active.toString()
         every { context.getString(R.string.settings_tracing_body_inactive) } returns R.string.settings_tracing_body_inactive.toString()
+        every { context.getString(R.string.settings_tracing_body_inactive_location) } returns R.string.settings_tracing_body_inactive_location.toString()
 
         val result = formatTracingDescription(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
+
         )
         assertThat(result, `is`((context.getString(iValue))))
     }
@@ -109,18 +115,21 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         sValue: String
     ) {
         every { context.getString(R.string.settings_tracing_body_bluetooth_inactive) } returns R.string.settings_tracing_body_bluetooth_inactive.toString()
         every { context.getString(R.string.settings_tracing_body_connection_inactive) } returns R.string.settings_tracing_body_connection_inactive.toString()
         every { context.getString(R.string.settings_tracing_body_active) } returns R.string.settings_tracing_body_active.toString()
         every { context.getString(R.string.settings_tracing_body_inactive) } returns R.string.settings_tracing_body_inactive.toString()
+        every { context.getString(R.string.settings_tracing_body_inactive_location) } returns R.string.settings_tracing_body_inactive_location.toString()
         every { context.getString(R.string.accessibility_button) } returns R.string.accessibility_button.toString()
 
         val result = formatTracingContentDescription(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(
             result, `is`(sValue)
@@ -166,12 +175,14 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         bValue: Boolean
     ) {
         val result = formatTracingSwitch(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(
             result, `is`(bValue)
@@ -182,12 +193,14 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         bValue: Boolean
     ) {
         val result = formatTracingSwitchEnabled(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(
             result, `is`(bValue)
@@ -197,15 +210,16 @@ class FormatterSettingsHelperTest {
     private fun formatTracingIconBase(
         bTracing: Boolean,
         bBluetooth: Boolean,
-        bConnection: Boolean
-    ) {
+        bConnection: Boolean,
+        bLocation: Boolean
+        ) {
         every { context.getDrawable(R.drawable.ic_settings_tracing_bluetooth_inactive) } returns drawable
         every { context.getDrawable(R.drawable.ic_settings_tracing_connection_inactive) } returns drawable
         every { context.getDrawable(R.drawable.ic_settings_tracing_active) } returns drawable
         every { context.getDrawable(R.drawable.ic_settings_tracing_inactive) } returns drawable
 
         val result =
-            formatTracingIcon(tracing = bTracing, bluetooth = bBluetooth, connection = bConnection)
+            formatTracingIcon(tracing = bTracing, bluetooth = bBluetooth, connection = bConnection, location = bLocation)
         assertThat(
             result, CoreMatchers.isA(Int::class.java)
         )
@@ -215,6 +229,7 @@ class FormatterSettingsHelperTest {
         bTracing: Boolean,
         bBluetooth: Boolean,
         bConnection: Boolean,
+        bLocation: Boolean,
         iColor: Int
     ) {
         every { context.getColor(R.color.colorAccentTintIcon) } returns R.color.colorAccentTintIcon
@@ -223,7 +238,8 @@ class FormatterSettingsHelperTest {
         val result = formatTracingIconColor(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(
             result, `is`(context.getColor(iColor))
@@ -233,8 +249,9 @@ class FormatterSettingsHelperTest {
     private fun formatTracingStatusImageBase(
         bTracing: Boolean,
         bBluetooth: Boolean,
-        bConnection: Boolean
-    ) {
+        bConnection: Boolean,
+        bLocation: Boolean
+        ) {
         every { context.getDrawable(R.drawable.ic_settings_illustration_bluetooth_off) } returns drawable
         every { context.getDrawable(R.drawable.ic_settings_illustration_connection_off) } returns drawable
         every { context.getDrawable(R.drawable.ic_illustration_tracing_on) } returns drawable
@@ -243,7 +260,8 @@ class FormatterSettingsHelperTest {
         val result = formatTracingStatusImage(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(
             result, `is`(CoreMatchers.equalTo(drawable))
@@ -253,12 +271,14 @@ class FormatterSettingsHelperTest {
     private fun formatTracingStatusConnectionBase(
         bTracing: Boolean,
         bBluetooth: Boolean,
-        bConnection: Boolean
-    ) {
+        bConnection: Boolean,
+        bLocation: Boolean
+        ) {
         val result = formatTracingStatusConnection(
             tracing = bTracing,
             bluetooth = bBluetooth,
-            connection = bConnection
+            connection = bConnection,
+            location = bLocation
         )
         assertThat(true, `is`(result > -1))
     }
@@ -266,13 +286,15 @@ class FormatterSettingsHelperTest {
     private fun formatTracingStatusVisibilityTracingBase(
         bTracing: Boolean,
         bBluetooth: Boolean,
-        bConnection: Boolean
-    ) {
+        bConnection: Boolean,
+        bLocation: Boolean
+        ) {
         val result =
             formatTracingStatusVisibilityTracing(
                 tracing = bTracing,
                 bluetooth = bBluetooth,
-                connection = bConnection
+                connection = bConnection,
+                location = bLocation
             )
         assertThat(true, `is`(result > -1))
     }
@@ -280,13 +302,15 @@ class FormatterSettingsHelperTest {
     private fun formatTracingStatusVisibilityBluetoothBase(
         bTracing: Boolean,
         bBluetooth: Boolean,
-        bConnection: Boolean
-    ) {
+        bConnection: Boolean,
+        bLocation: Boolean
+        ) {
         val result =
             formatTracingStatusVisibilityBluetooth(
                 tracing = bTracing,
                 bluetooth = bBluetooth,
-                connection = bConnection
+                connection = bConnection,
+                location = bLocation
             )
         assertThat(true, `is`(result > -1))
     }
@@ -382,203 +406,263 @@ class FormatterSettingsHelperTest {
 
     @Test
     fun formatTracingStatusText() {
-        // When tracing is true, bluetooth is true, connection is true
+        // When tracing is true, bluetooth is true, connection is true, location is true
         formatTracingStatusBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_active
         )
 
-        // When tracing is false, bluetooth is false, connection is false
+        // When tracing is false, bluetooth is false, connection is false, location is false
         formatTracingStatusBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
+            bLocation = false,
             iValue = R.string.settings_tracing_status_inactive
         )
 
-        // When tracing is true, bluetooth is false, connection is false
+        // When tracing is true, bluetooth is false, connection is false, location is true
         formatTracingStatusBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_restricted
         )
 
-        // When tracing is true, bluetooth is true, connection is false
+        // When tracing is true, bluetooth is true, connection is false, location is true
         formatTracingStatusBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_restricted
         )
 
-        // When tracing is false, bluetooth is true, connection is false
+        // When tracing is false, bluetooth is true, connection is false, location is false
         formatTracingStatusBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = false,
             iValue = R.string.settings_tracing_status_inactive
         )
 
-        // When tracing is false, bluetooth is true, connection is true
+        // When tracing is false, bluetooth is true, connection is true, location is true
         formatTracingStatusBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_inactive
         )
 
-        // When tracing is true, bluetooth is false, connection is true
+        // When tracing is true, bluetooth is false, connection is true, location is true
         formatTracingStatusBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_restricted
         )
 
-        // When tracing is false, bluetooth is false, connection is true
+        // When tracing is false, bluetooth is false, connection is true, location is true
         formatTracingStatusBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_status_inactive
         )
     }
 
     @Test
     fun formatTracingDescription() {
-        // When tracing is true, bluetooth is true, connection is true
+        // When tracing is true, bluetooth is true, connection is true, location is true
         formatTracingDescriptionBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_active
         )
 
-        // When tracing is false, bluetooth is false, connection is false
+        // When tracing is false, bluetooth is false, connection is false, location is false
         formatTracingDescriptionBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
-            iValue = R.string.settings_tracing_body_inactive
+            bLocation = false,
+            iValue = R.string.settings_tracing_body_inactive_location
         )
 
-        // When tracing is true, bluetooth is false, connection is false
+        // When tracing is true, bluetooth is false, connection is false, location is true
         formatTracingDescriptionBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
-            iValue = R.string.settings_tracing_body_bluetooth_inactive
+            bLocation = true,
+            iValue = R.string.settings_tracing_body_connection_inactive
         )
 
-        // When tracing is true, bluetooth is true, connection is false
+        // When tracing is true, bluetooth is true, connection is false, location is true
         formatTracingDescriptionBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_connection_inactive
         )
 
-        // When tracing is false, bluetooth is true, connection is false
+        // When tracing is false, bluetooth is true, connection is false, location is true
         formatTracingDescriptionBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_inactive
         )
 
-        // When tracing is false, bluetooth is true, connection is true
+        // When tracing is false, bluetooth is true, connection is true, location is true
         formatTracingDescriptionBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_inactive
         )
 
-        // When tracing is true, bluetooth is false, connection is true
+        // When tracing is true, bluetooth is false, connection is true, location is true
         formatTracingDescriptionBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_bluetooth_inactive
         )
 
-        // When tracing is false, bluetooth is false, connection is true
+        // When tracing is false, bluetooth is false, connection is true, location is true
         formatTracingDescriptionBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iValue = R.string.settings_tracing_body_inactive
         )
+
+        // When tracing is true, bluetooth is true, connection is true, location is false
+        formatTracingDescriptionBase(
+            bTracing = true,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
+            iValue = R.string.settings_tracing_body_inactive_location
+        )
+
+        // When tracing is false, bluetooth is true, connection is true, location is false
+        formatTracingDescriptionBase(
+            bTracing = false,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
+            iValue = R.string.settings_tracing_body_inactive_location
+        )
     }
 
     @Test
     fun formatTracingContentDescription() {
-        // When tracing is true, bluetooth is true, connection is true
+        // When tracing is true, bluetooth is true, connection is true, location is true
         formatTracingContentDescriptionBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_active.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is false, bluetooth is false, connection is false
+        // When tracing is false, bluetooth is false, connection is false, location is true
         formatTracingContentDescriptionBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is true, bluetooth is false, connection is false
+        // When tracing is true, bluetooth is false, connection is false, location is true
         formatTracingContentDescriptionBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
-            sValue = R.string.settings_tracing_body_bluetooth_inactive.toString() + " " + R.string.accessibility_button.toString()
+            bLocation = true,
+            sValue = R.string.settings_tracing_body_connection_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is true, bluetooth is true, connection is false
+        // When tracing is true, bluetooth is true, connection is false, location is true
         formatTracingContentDescriptionBase(
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_connection_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is false, bluetooth is true, connection is false
+        // When tracing is false, bluetooth is true, connection is false, location is true
         formatTracingContentDescriptionBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is false, bluetooth is true, connection is true
+        // When tracing is false, bluetooth is true, connection is true, location is true
         formatTracingContentDescriptionBase(
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is true, bluetooth is false, connection is true
+        // When tracing is true, bluetooth is false, connection is true, location is true
         formatTracingContentDescriptionBase(
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_bluetooth_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
 
-        // When tracing is false, bluetooth is false, connection is true
+        // When tracing is false, bluetooth is false, connection is true, location is true
         formatTracingContentDescriptionBase(
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             sValue = R.string.settings_tracing_body_inactive.toString() + " " + R.string.accessibility_button.toString()
         )
+
+        // When tracing is false, bluetooth is true, connection is true, location is false
+        formatTracingContentDescriptionBase(
+            bTracing = false,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
+            sValue = R.string.settings_tracing_body_inactive_location.toString() + " " + R.string.accessibility_button.toString()
+        )
+
+        // When tracing is true, bluetooth is true, connection is true, location is false
+        formatTracingContentDescriptionBase(
+            bTracing = true,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
+            sValue = R.string.settings_tracing_body_inactive_location.toString() + " " + R.string.accessibility_button.toString()
+        )
     }
 
     @Test
@@ -614,6 +698,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             bValue = true
         )
 
@@ -621,6 +706,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             bValue = false
         )
 
@@ -628,6 +714,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             bValue = false
         )
 
@@ -635,6 +722,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             bValue = false
         )
 
@@ -642,6 +730,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             bValue = false
         )
 
@@ -649,6 +738,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             bValue = false
         )
 
@@ -656,6 +746,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             bValue = false
         )
 
@@ -663,6 +754,23 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
+            bValue = false
+        )
+
+        formatTracingSwitchBase(
+            bTracing = false,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
+            bValue = false
+        )
+
+        formatTracingSwitchBase(
+            bTracing = true,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
             bValue = false
         )
     }
@@ -674,6 +782,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             bValue = true
         )
 
@@ -681,6 +790,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             bValue = true
         )
 
@@ -688,6 +798,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             bValue = true
         )
 
@@ -695,6 +806,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             bValue = true
         )
 
@@ -702,6 +814,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             bValue = true
         )
 
@@ -709,6 +822,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             bValue = false
         )
 
@@ -716,6 +830,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             bValue = false
         )
 
@@ -723,27 +838,30 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             bValue = false
         )
     }
 
     @Test
     fun formatTracingIcon() {
-        formatTracingIconBase(bTracing = true, bBluetooth = true, bConnection = true)
+        formatTracingIconBase(bTracing = true, bBluetooth = true, bConnection = true, bLocation = true)
+
+        formatTracingIconBase(bTracing = false, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingIconBase(bTracing = false, bBluetooth = false, bConnection = false)
+        formatTracingIconBase(bTracing = false, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingIconBase(bTracing = false, bBluetooth = false, bConnection = true)
+        formatTracingIconBase(bTracing = false, bBluetooth = true, bConnection = false, bLocation = true)
 
-        formatTracingIconBase(bTracing = false, bBluetooth = true, bConnection = false)
+        formatTracingIconBase(bTracing = false, bBluetooth = true, bConnection = true, bLocation = true)
 
-        formatTracingIconBase(bTracing = false, bBluetooth = true, bConnection = true)
+        formatTracingIconBase(bTracing = true, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingIconBase(bTracing = true, bBluetooth = false, bConnection = false)
+        formatTracingIconBase(bTracing = true, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingIconBase(bTracing = true, bBluetooth = false, bConnection = true)
+        formatTracingIconBase(bTracing = true, bBluetooth = true, bConnection = false, bLocation = true)
 
-        formatTracingIconBase(bTracing = true, bBluetooth = true, bConnection = false)
+        formatTracingIconBase(bTracing = true, bBluetooth = true, bConnection = true, bLocation = false)
     }
 
     @Test
@@ -753,6 +871,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iColor = R.color.colorAccentTintIcon
         )
 
@@ -760,6 +879,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -767,6 +887,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -774,6 +895,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -781,6 +903,7 @@ class FormatterSettingsHelperTest {
             bTracing = false,
             bBluetooth = true,
             bConnection = true,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -788,6 +911,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = false,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -795,6 +919,7 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = false,
             bConnection = true,
+            bLocation = true,
             iColor = R.color.colorTextSemanticRed
         )
 
@@ -802,46 +927,55 @@ class FormatterSettingsHelperTest {
             bTracing = true,
             bBluetooth = true,
             bConnection = false,
+            bLocation = true,
+            iColor = R.color.colorTextSemanticRed
+        )
+
+        formatTracingIconColorBase(
+            bTracing = true,
+            bBluetooth = true,
+            bConnection = true,
+            bLocation = false,
             iColor = R.color.colorTextSemanticRed
         )
     }
 
     @Test
     fun formatTracingStatusImage() {
-        formatTracingStatusImageBase(bTracing = true, bBluetooth = true, bConnection = true)
+        formatTracingStatusImageBase(bTracing = true, bBluetooth = true, bConnection = true, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = false, bBluetooth = false, bConnection = false)
+        formatTracingStatusImageBase(bTracing = false, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = false, bBluetooth = false, bConnection = true)
+        formatTracingStatusImageBase(bTracing = false, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = false, bBluetooth = true, bConnection = false)
+        formatTracingStatusImageBase(bTracing = false, bBluetooth = true, bConnection = false, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = false, bBluetooth = true, bConnection = true)
+        formatTracingStatusImageBase(bTracing = false, bBluetooth = true, bConnection = true, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = true, bBluetooth = false, bConnection = false)
+        formatTracingStatusImageBase(bTracing = true, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = true, bBluetooth = false, bConnection = true)
+        formatTracingStatusImageBase(bTracing = true, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingStatusImageBase(bTracing = true, bBluetooth = true, bConnection = false)
+        formatTracingStatusImageBase(bTracing = true, bBluetooth = true, bConnection = false, bLocation = true)
     }
 
     @Test
     fun formatTracingStatusConnection() {
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = true)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = true, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = false, bConnection = false)
+        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = false, bConnection = true)
+        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = true, bConnection = false)
+        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = true, bConnection = false, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = true, bConnection = true)
+        formatTracingStatusConnectionBase(bTracing = false, bBluetooth = true, bConnection = true, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = false)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = false, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = true)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = false)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = false, bLocation = true)
     }
 
     @Test
@@ -849,42 +983,48 @@ class FormatterSettingsHelperTest {
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = true,
             bBluetooth = true,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = false,
             bBluetooth = false,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = false,
             bBluetooth = false,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = false,
             bBluetooth = true,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = false,
             bBluetooth = true,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityBluetoothBase(
             bTracing = true,
             bBluetooth = false,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = true)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = false, bConnection = true, bLocation = true)
 
-        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = false)
+        formatTracingStatusConnectionBase(bTracing = true, bBluetooth = true, bConnection = false, bLocation = true)
     }
 
     @Test
@@ -892,49 +1032,57 @@ class FormatterSettingsHelperTest {
         formatTracingStatusVisibilityTracingBase(
             bTracing = true,
             bBluetooth = true,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = false,
             bBluetooth = false,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = false,
             bBluetooth = false,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = false,
             bBluetooth = true,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = false,
             bBluetooth = true,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = true,
             bBluetooth = false,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = true,
             bBluetooth = false,
-            bConnection = true
+            bConnection = true,
+            bLocation = true
         )
 
         formatTracingStatusVisibilityTracingBase(
             bTracing = true,
             bBluetooth = true,
-            bConnection = false
+            bConnection = false,
+            bLocation = true
         )
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelperTest.kt
index 203c77231c8019a21d91e58cb92fa37f4c712d80..ddebea5479fa1fc68d487cd24c4416a1dfc390b3 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/formatter/TracingStatusHelperTest.kt
@@ -8,49 +8,55 @@ class TracingStatusHelperTest {
 
     @Test
     fun testTracingActiveAllOn() {
-        val result = tracingStatusHelper(tracing = true, bluetooth = true, connection = true)
+        val result = tracingStatusHelper(tracing = true, bluetooth = true, connection = true, location = true)
         assertThat(result, `is`((TracingStatusHelper.TRACING_ACTIVE)))
     }
 
     @Test
     fun testTracingInactiveWhenAllOff() {
-        val result = tracingStatusHelper(tracing = false, bluetooth = false, connection = false)
+        val result = tracingStatusHelper(tracing = false, bluetooth = false, connection = false, location = true)
         assertThat(result, `is`((TracingStatusHelper.TRACING_INACTIVE)))
     }
 
     @Test
     fun testTracingInactiveWhenTracingOffBluetoothOffConnectionOn() {
-        val result = tracingStatusHelper(tracing = false, bluetooth = false, connection = true)
+        val result = tracingStatusHelper(tracing = false, bluetooth = false, connection = true, location = true)
         assertThat(result, `is`((TracingStatusHelper.TRACING_INACTIVE)))
     }
 
     @Test
     fun testTracingInactiveWhenTracingOffBluetoothOnConnectionOff() {
-        val result = tracingStatusHelper(tracing = false, bluetooth = true, connection = false)
+        val result = tracingStatusHelper(tracing = false, bluetooth = true, connection = false, location = true)
         assertThat(result, `is`((TracingStatusHelper.TRACING_INACTIVE)))
     }
 
     @Test
     fun testTracingInactiveWhenTracingOffBluetoothOnConnectionOn() {
-        val result = tracingStatusHelper(tracing = false, bluetooth = true, connection = true)
+        val result = tracingStatusHelper(tracing = false, bluetooth = true, connection = true, location = true)
         assertThat(result, `is`((TracingStatusHelper.TRACING_INACTIVE)))
     }
 
     @Test
     fun testBluetoothInactiveWhenTracingOnBluetoothOffConnectionOn() {
-        val result = tracingStatusHelper(tracing = true, bluetooth = false, connection = true)
+        val result = tracingStatusHelper(tracing = true, bluetooth = false, connection = true, location = true)
         assertThat(result, `is`((TracingStatusHelper.BLUETOOTH)))
     }
 
     @Test
-    fun testBluetoothInactiveWhenTracingOnBluetoothOffConnectionOff() {
-        val result = tracingStatusHelper(tracing = true, bluetooth = false, connection = false)
-        assertThat(result, `is`((TracingStatusHelper.BLUETOOTH)))
+    fun testConnectionInactiveWhenTracingOnBluetoothOffConnectionOff() {
+        val result = tracingStatusHelper(tracing = true, bluetooth = true, connection = false, location = true)
+        assertThat(result, `is`((TracingStatusHelper.CONNECTION)))
     }
 
     @Test
-    fun testConnectionInactiveWhenTracingOnBluetoothOffConnectionOff() {
-        val result = tracingStatusHelper(tracing = true, bluetooth = true, connection = false)
-        assertThat(result, `is`((TracingStatusHelper.CONNECTION)))
+    fun testConnectionInactiveWhenTracingOffBluetoothOnConnectionOnLocationOff() {
+        val result = tracingStatusHelper(tracing = false, bluetooth = true, connection = true, location = false)
+        assertThat(result, `is`((TracingStatusHelper.LOCATION)))
+    }
+
+    @Test
+    fun testConnectionInactiveWhenTracingOnBluetoothOnConnectionOnLocationOff() {
+        val result = tracingStatusHelper(tracing = true, bluetooth = true, connection = true, location = false)
+        assertThat(result, `is`((TracingStatusHelper.LOCATION)))
     }
 }