From 39e7c5b115b0149ef5ad6b282ad952942b263f56 Mon Sep 17 00:00:00 2001
From: Alex Paulescu <alex.paulescu@gmail.com>
Date: Thu, 15 Apr 2021 18:20:07 +0300
Subject: [PATCH] Hotline international number (EXPOSUREAPP-6011) (#2789)

* Added hotline number to TAN and Tech hotline screens.

* Fix detekt

* Removed test for "Call" button press since there's no more call button.

* Added spacing between international number and next text line.

* Updated strings and text size.

* Changed TAN button to blue.

* Removed blank line.

Co-authored-by: Lukas Lechner <lukas.lechner@sap.com>
Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
Co-authored-by: I502720 <axel.herbstreith@sap.com>
---
 .../SubmissionContactFragmentTest.kt          |  7 --
 .../information/InformationContactFragment.kt |  4 ++
 .../fragment/SubmissionContactFragment.kt     | 25 +++----
 .../viewmodel/SubmissionContactViewModel.kt   |  5 --
 .../res/drawable/ic_international_phone.xml   |  9 +++
 .../src/main/res/drawable/ic_phone.xml        |  9 +++
 .../layout/fragment_information_contact.xml   | 67 ++++++++++-------
 .../layout/fragment_submission_contact.xml    | 18 +----
 .../res/layout/include_navigation_row.xml     | 72 ++++++++++---------
 .../res/layout/include_submission_contact.xml | 44 +++++++-----
 .../src/main/res/values-de/strings.xml        | 11 ++-
 .../src/main/res/values/strings.xml           |  8 +++
 .../src/main/res/values/styles.xml            |  5 ++
 13 files changed, 164 insertions(+), 120 deletions(-)
 create mode 100644 Corona-Warn-App/src/main/res/drawable/ic_international_phone.xml
 create mode 100644 Corona-Warn-App/src/main/res/drawable/ic_phone.xml

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
index 2fc4006c2..ac04a0a70 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/submission/SubmissionContactFragmentTest.kt
@@ -59,13 +59,6 @@ class SubmissionContactFragmentTest : BaseUITest() {
         launchFragment2<SubmissionContactFragment>()
     }
 
-    @Test
-    fun testContactCallClicked() {
-        launchFragmentInContainer2<SubmissionContactFragment>()
-        onView(withId(R.id.submission_contact_button_call))
-            .perform(click())
-    }
-
     @Test
     fun testContactEnterTanClicked() {
         val navController = TestNavHostController(ApplicationProvider.getApplicationContext())
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 e1037bf82..34ca2c6cf 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
@@ -38,5 +38,9 @@ class InformationContactFragment : Fragment(R.layout.fragment_information_contac
             val number = getString(R.string.information_contact_phone_call_number)
             ExternalActionHelper.call(this, number)
         }
+        binding.informationContactNavigationRowInternationalPhone.navigationRow.setOnClickListener {
+            val number = getString(R.string.information_contact_button_international_phone)
+            ExternalActionHelper.call(this, number)
+        }
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt
index 5bd94db29..1cfcb3edc 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt
@@ -45,10 +45,6 @@ class SubmissionContactFragment : Fragment(R.layout.fragment_submission_contact)
                     )
             }
         }
-
-        viewModel.dial.observe2(this) {
-            dial()
-        }
     }
 
     override fun onResume() {
@@ -60,19 +56,18 @@ class SubmissionContactFragment : Fragment(R.layout.fragment_submission_contact)
         binding.submissionContactHeader.headerButtonBack.buttonIcon.setOnClickListener {
             viewModel.onBackPressed()
         }
-        binding.submissionContactButtonCall.setOnClickListener {
-            viewModel.onDialPressed()
-        }
-        binding.includeSubmissionContact.submissionContactStep1Number.setOnClickListener {
-            viewModel.onDialPressed()
-        }
+        binding.includeSubmissionContact.submissionContactNavigationRowPhone.navigationRow
+            .setOnClickListener {
+                val number = getString(R.string.submission_contact_number_display)
+                ExternalActionHelper.call(this, number)
+            }
+        binding.includeSubmissionContact.submissionContactNavigationRowInternationalPhone.navigationRow
+            .setOnClickListener {
+                val number = getString(R.string.submission_contact_button_international_phone)
+                ExternalActionHelper.call(this, number)
+            }
         binding.submissionContactButtonEnter.setOnClickListener {
             viewModel.onEnterTanPressed()
         }
     }
-
-    private fun dial() = context?.let {
-        val number = getString(R.string.submission_contact_number_dial)
-        ExternalActionHelper.call(this, number)
-    }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionContactViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionContactViewModel.kt
index 378401830..dc290b19f 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionContactViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/viewmodel/SubmissionContactViewModel.kt
@@ -9,16 +9,11 @@ import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
 class SubmissionContactViewModel @AssistedInject constructor() : CWAViewModel() {
 
     val routeToScreen: SingleLiveEvent<SubmissionNavigationEvents> = SingleLiveEvent()
-    val dial = SingleLiveEvent<Unit>()
 
     fun onBackPressed() {
         routeToScreen.postValue(SubmissionNavigationEvents.NavigateToDispatcher)
     }
 
-    fun onDialPressed() {
-        dial.postValue(Unit)
-    }
-
     fun onEnterTanPressed() {
         routeToScreen.postValue(SubmissionNavigationEvents.NavigateToTAN)
     }
diff --git a/Corona-Warn-App/src/main/res/drawable/ic_international_phone.xml b/Corona-Warn-App/src/main/res/drawable/ic_international_phone.xml
new file mode 100644
index 000000000..622119eaa
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/drawable/ic_international_phone.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="23dp"
+    android:viewportWidth="24"
+    android:viewportHeight="23">
+  <path
+      android:pathData="M12.1484,22.4805C18.3037,22.4805 23.374,17.3994 23.374,11.2441C23.374,5.0889 18.293,0.0186 12.1484,0.0186C5.9932,0.0186 0.9229,5.0889 0.9229,11.2441C0.9229,17.3994 5.9932,22.4805 12.1484,22.4805ZM5.6494,4.6807C6.7021,3.6387 8.0127,2.833 9.4629,2.3926C8.6895,3.1553 8.0342,4.2402 7.54,5.5723C6.7988,5.3359 6.165,5.0352 5.6494,4.6807ZM14.8447,2.3926C16.2949,2.8438 17.5947,3.6387 18.6475,4.6914C18.1426,5.0352 17.498,5.3359 16.7676,5.5723C16.2734,4.251 15.6182,3.1553 14.8447,2.3926ZM9.1191,5.9482C9.6992,4.4229 10.4941,3.2842 11.3643,2.8545V6.1846C10.5693,6.1523 9.8174,6.0771 9.1191,5.9482ZM12.9434,2.8545C13.8135,3.2842 14.6084,4.4229 15.1777,5.9482C14.4902,6.0771 13.7383,6.1523 12.9434,6.1846V2.8545ZM2.9209,10.4492C3.0713,8.752 3.6836,7.1836 4.6396,5.8623C5.2734,6.3457 6.1113,6.7432 7.0889,7.0547C6.831,8.0967 6.6699,9.2353 6.6162,10.4492H2.9209ZM17.6807,10.4492C17.6377,9.2353 17.4658,8.0967 17.2188,7.0547C18.1963,6.7432 19.0342,6.3457 19.668,5.8731C20.6133,7.1836 21.2256,8.7627 21.376,10.4492H17.6807ZM12.9434,10.4492V7.7637C13.8887,7.7207 14.8018,7.624 15.6396,7.4521C15.8652,8.3867 16.0156,9.3965 16.0693,10.4492H12.9434ZM8.2275,10.4492C8.2813,9.3965 8.4316,8.3867 8.6572,7.4521C9.5059,7.624 10.4189,7.7207 11.3643,7.7637V10.4492H8.2275ZM2.9209,12.0283H6.6162C6.6699,13.2637 6.831,14.4238 7.0889,15.4766C6.1221,15.7881 5.2949,16.1855 4.6611,16.6582C3.6943,15.3262 3.0713,13.7471 2.9209,12.0283ZM8.2275,12.0283H11.3643V14.7783C10.4189,14.8105 9.5059,14.918 8.668,15.0791C8.4316,14.1338 8.2813,13.1025 8.2275,12.0283ZM12.9434,14.7783V12.0283H16.0693C16.0264,13.1025 15.8652,14.1338 15.6289,15.0791C14.791,14.918 13.8887,14.8105 12.9434,14.7783ZM17.208,15.4766C17.4766,14.4238 17.6377,13.2637 17.6807,12.0283H21.376C21.2363,13.7471 20.6025,15.3262 19.6465,16.6582C19.0127,16.1855 18.1855,15.7881 17.208,15.4766ZM9.1406,16.583C9.8281,16.4648 10.5693,16.3896 11.3643,16.3574V19.6553C10.4941,19.2148 9.71,18.0869 9.1406,16.583ZM12.9434,16.3574C13.7275,16.3896 14.4688,16.4648 15.167,16.583C14.5977,18.0869 13.8027,19.2148 12.9434,19.6553V16.3574ZM5.6709,17.8398C6.1865,17.4854 6.8203,17.1953 7.5508,16.9697C8.0342,18.2695 8.6895,19.3438 9.4522,20.0957C8.0127,19.6553 6.7236,18.8711 5.6709,17.8398ZM16.7568,16.9697C17.4873,17.1953 18.1211,17.4854 18.626,17.8398C17.5732,18.8711 16.2842,19.6553 14.8555,20.0957C15.6182,19.3438 16.2627,18.2695 16.7568,16.9697Z"
+      android:fillColor="#17191A"/>
+</vector>
diff --git a/Corona-Warn-App/src/main/res/drawable/ic_phone.xml b/Corona-Warn-App/src/main/res/drawable/ic_phone.xml
new file mode 100644
index 000000000..80f7fca27
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/drawable/ic_phone.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="23dp"
+    android:height="23dp"
+    android:viewportWidth="23"
+    android:viewportHeight="23">
+  <path
+      android:pathData="M16.6592,22.6309C17.5615,22.6309 18.3708,22.459 19.0869,22.1152C19.8102,21.7786 20.512,21.2738 21.1924,20.6006C21.2282,20.5648 21.2604,20.529 21.2891,20.4932C21.3249,20.4645 21.3571,20.4287 21.3857,20.3857C21.6436,20.0778 21.8548,19.7269 22.0195,19.333C22.1842,18.9391 22.2666,18.5667 22.2666,18.2158C22.2666,17.7718 22.1735,17.3672 21.9873,17.002C21.8011,16.6296 21.4788,16.2822 21.0205,15.96L17.6475,13.6182C17.0674,13.2171 16.4873,13.0238 15.9072,13.0381C15.3343,13.0452 14.8294,13.2744 14.3926,13.7256L13.7803,14.3594C13.5654,14.5742 13.3327,14.6852 13.082,14.6924C12.8385,14.6924 12.5521,14.5527 12.2227,14.2734C12.0365,14.1159 11.8359,13.944 11.6211,13.7578C11.4134,13.5716 11.2057,13.3818 10.998,13.1885C10.7904,12.9951 10.597,12.8125 10.418,12.6406C10.2819,12.4974 10.1315,12.3398 9.9668,12.168C9.8092,11.9889 9.6481,11.8099 9.4834,11.6309C9.3258,11.4447 9.179,11.2656 9.043,11.0938C8.7852,10.7643 8.6527,10.4779 8.6455,10.2344C8.6455,9.9909 8.7529,9.7617 8.9678,9.5469L9.6016,8.9238C10.0456,8.487 10.2747,7.9821 10.2891,7.4092C10.3034,6.8291 10.1064,6.2526 9.6982,5.6797L7.0986,2.0381C6.8408,1.68 6.5042,1.4043 6.0889,1.2109C5.6735,1.0176 5.2366,0.9209 4.7783,0.9209C4.0049,0.9209 3.3066,1.1716 2.6836,1.6729C2.6478,1.6943 2.612,1.7194 2.5762,1.748C2.5475,1.7767 2.526,1.7982 2.5117,1.8125C1.7813,2.5501 1.237,3.2878 0.8789,4.0254C0.5208,4.763 0.3418,5.6869 0.3418,6.7969C0.3418,7.9499 0.5173,9.1136 0.8682,10.2881C1.2191,11.4554 1.7848,12.6406 2.5654,13.8438C3.346,15.0469 4.3809,16.2715 5.6699,17.5176C6.9518,18.7637 8.1872,19.7591 9.376,20.5039C10.5648,21.2559 11.7536,21.7965 12.9424,22.126C14.1312,22.4626 15.3701,22.6309 16.6592,22.6309ZM16.5732,20.2783C15.7139,20.2783 14.8223,20.1315 13.8984,19.8379C12.9746,19.5514 11.9863,19.0645 10.9336,18.377C9.888,17.6823 8.7493,16.737 7.5176,15.541C6.2786,14.3379 5.3154,13.2135 4.6279,12.168C3.9404,11.1152 3.4606,10.1198 3.1885,9.1816C2.9163,8.2435 2.7803,7.3447 2.7803,6.4854C2.7803,5.9984 2.8698,5.54 3.0488,5.1104C3.2279,4.6807 3.4785,4.3262 3.8008,4.0469C3.8509,4.0039 3.9046,3.9609 3.9619,3.918C4.0192,3.8678 4.0729,3.8249 4.1231,3.7891C4.2305,3.7103 4.3379,3.653 4.4453,3.6172C4.5527,3.5742 4.6602,3.5527 4.7676,3.5527C5.0755,3.5527 5.3369,3.7067 5.5518,4.0146L7.1738,6.3779C7.3529,6.6429 7.4281,6.9186 7.3994,7.2051C7.3708,7.4915 7.2311,7.7529 6.9805,7.9893L6.5508,8.376C6.0065,8.8701 5.7236,9.3499 5.7021,9.8154C5.6878,10.2809 5.7845,10.6963 5.9922,11.0615C6.1856,11.4124 6.5365,11.8851 7.0449,12.4795C7.5606,13.0667 8.137,13.6719 8.7744,14.2949C9.3044,14.8105 9.8021,15.2796 10.2676,15.7021C10.7331,16.1247 11.1377,16.4792 11.4814,16.7656C11.8324,17.0521 12.0902,17.2383 12.2549,17.3242C12.6273,17.5319 13.0462,17.6286 13.5117,17.6143C13.9772,17.5928 14.457,17.3135 14.9512,16.7764L15.3379,16.3467C15.5742,16.0889 15.832,15.9492 16.1113,15.9277C16.3978,15.9062 16.6735,15.9779 16.9385,16.1426L19.0439,17.5068C19.2158,17.6214 19.334,17.7432 19.3984,17.8721C19.4701,18.001 19.5059,18.1335 19.5059,18.2695C19.5059,18.513 19.4271,18.735 19.2695,18.9355C19.2337,18.9857 19.1908,19.0394 19.1406,19.0967C19.0977,19.154 19.0547,19.2077 19.0117,19.2578C18.7324,19.5801 18.3779,19.8307 17.9482,20.0098C17.5186,20.1888 17.0602,20.2783 16.5732,20.2783Z"
+      android:fillColor="#17191A"/>
+</vector>
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information_contact.xml b/Corona-Warn-App/src/main/res/layout/fragment_information_contact.xml
index f0cb4058e..75163b421 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_information_contact.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_information_contact.xml
@@ -6,8 +6,8 @@
         android:id="@+id/information_contact_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:focusable="true"
-        android:contentDescription="@string/information_contact_title">
+        android:contentDescription="@string/information_contact_title"
+        android:focusable="true">
 
         <include
             android:id="@+id/information_contact_header"
@@ -52,43 +52,62 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_medium"
-                    app:layout_constraintEnd_toEndOf="@+id/guideline_end"
+                    app:layout_constraintEnd_toEndOf="@id/guideline_end"
                     app:layout_constraintStart_toStartOf="@id/guideline_start"
-                    app:layout_constraintTop_toBottomOf="@+id/information_contact_header_details" />
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_header_details" />
 
                 <TextView
                     android:id="@+id/information_contact_subtitle_phone"
                     style="@style/headline6"
-                    android:accessibilityHeading="true"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_small"
-                    android:text="@string/information_contact_subtitle_phone"
+                    android:accessibilityHeading="true"
                     android:focusable="true"
-                    app:layout_constraintEnd_toStartOf="@+id/guideline_end"
-                    app:layout_constraintStart_toEndOf="@+id/guideline_start"
-                    app:layout_constraintTop_toBottomOf="@+id/divider" />
+                    android:text="@string/information_contact_subtitle_phone"
+                    app:layout_constraintEnd_toStartOf="@id/guideline_end"
+                    app:layout_constraintStart_toEndOf="@id/guideline_start"
+                    app:layout_constraintTop_toBottomOf="@id/divider" />
 
                 <include
                     android:id="@+id/information_contact_navigation_row_phone"
                     layout="@layout/include_navigation_row"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/spacing_normal"
+                    android:layout_marginEnd="@dimen/spacing_normal"
+                    app:icon="@{@drawable/ic_phone}"
                     app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/information_contact_subtitle_phone"
-                    app:subtitle="@{@string/information_contact_button_phone}" />
+                    app:layout_constraintStart_toStartOf="@id/information_contact_subtitle_phone"
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_subtitle_phone"
+                    app:subtitle="@{@string/information_contact_button_phone_description}"
+                    app:title="@{@string/information_contact_button_phone}" />
+
+                <include
+                    android:id="@+id/information_contact_navigation_row_international_phone"
+                    layout="@layout/include_navigation_row"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/spacing_normal"
+                    android:layout_marginEnd="@dimen/spacing_normal"
+                    app:icon="@{@drawable/ic_international_phone}"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="@id/information_contact_subtitle_phone"
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_navigation_row_phone"
+                    app:subtitle="@{@string/information_contact_button_international_phone_description}"
+                    app:title="@{@string/information_contact_button_international_phone}" />
 
                 <TextView
                     android:id="@+id/information_contact_body_phone"
                     style="@style/body2"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:text="@string/information_contact_body_phone"
                     android:focusable="true"
-                    app:layout_constraintEnd_toEndOf="@+id/guideline_end"
-                    app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                    app:layout_constraintTop_toBottomOf="@+id/information_contact_navigation_row_phone" />
+                    android:layout_marginTop="@dimen/spacing_normal"
+                    android:text="@string/information_contact_body_phone"
+                    app:layout_constraintEnd_toEndOf="@id/guideline_end"
+                    app:layout_constraintStart_toStartOf="@id/guideline_start"
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_navigation_row_international_phone" />
 
                 <TextView
                     android:id="@+id/information_contact_body_open"
@@ -96,11 +115,11 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
-                    android:text="@string/information_contact_body_open"
                     android:focusable="true"
-                    app:layout_constraintEnd_toEndOf="@+id/guideline_end"
-                    app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                    app:layout_constraintTop_toBottomOf="@+id/information_contact_body_phone" />
+                    android:text="@string/information_contact_body_open"
+                    app:layout_constraintEnd_toEndOf="@id/guideline_end"
+                    app:layout_constraintStart_toStartOf="@id/guideline_start"
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_body_phone" />
 
                 <TextView
                     android:id="@+id/information_contact_body_other"
@@ -108,12 +127,12 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_normal"
-                    android:text="@string/information_contact_body_other"
                     android:focusable="true"
+                    android:text="@string/information_contact_body_other"
                     android:textColorLink="@color/colorTextTint"
-                    app:layout_constraintEnd_toEndOf="@+id/guideline_end"
-                    app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                    app:layout_constraintTop_toBottomOf="@+id/information_contact_body_open" />
+                    app:layout_constraintEnd_toEndOf="@id/guideline_end"
+                    app:layout_constraintStart_toStartOf="@id/guideline_start"
+                    app:layout_constraintTop_toBottomOf="@id/information_contact_body_open" />
 
                 <androidx.constraintlayout.widget.Guideline
                     android:id="@+id/guideline_start"
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
index a8b7ca3fd..a4f2fb2e3 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_contact.xml
@@ -32,21 +32,9 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/submission_contact_header" />
 
-        <Button
-            android:id="@+id/submission_contact_button_call"
-            style="@style/buttonPrimary"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:text="@string/submission_contact_button_call"
-            android:textAllCaps="true"
-            app:layout_constraintBottom_toTopOf="@+id/submission_contact_button_enter"
-            app:layout_constraintEnd_toStartOf="@+id/guideline_end"
-            app:layout_constraintStart_toStartOf="@id/guideline_start"
-            app:layout_constraintTop_toBottomOf="@+id/guideline_bottom" />
-
         <Button
             android:id="@+id/submission_contact_button_enter"
-            style="@style/buttonLight"
+            style="@style/buttonPrimary"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:text="@string/submission_contact_button_enter"
@@ -54,14 +42,14 @@
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@+id/guideline_end"
             app:layout_constraintStart_toStartOf="@id/guideline_start"
-            app:layout_constraintTop_toBottomOf="@+id/submission_contact_button_call" />
+            app:layout_constraintTop_toBottomOf="@+id/include_submission_contact" />
 
         <androidx.constraintlayout.widget.Guideline
             android:id="@+id/guideline_bottom"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            app:layout_constraintGuide_end="@dimen/guideline_action_large" />
+            app:layout_constraintGuide_end="@dimen/guideline_action" />
 
         <include layout="@layout/merge_guidelines_side" />
 
diff --git a/Corona-Warn-App/src/main/res/layout/include_navigation_row.xml b/Corona-Warn-App/src/main/res/layout/include_navigation_row.xml
index 1daa41738..192d8b7ed 100644
--- a/Corona-Warn-App/src/main/res/layout/include_navigation_row.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_navigation_row.xml
@@ -13,52 +13,56 @@
             name="icon"
             type="android.graphics.drawable.Drawable" />
 
+        <variable
+            name="title"
+            type="String" />
+
         <variable
             name="subtitle"
             type="String" />
     </data>
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/navigation_row"
+        style="@style/phoneNumber"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:focusable="true">
 
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/navigation_row"
-            style="@style/row"
+        <ImageView
+            android:id="@+id/navigation_row_icon"
+            android:layout_width="@dimen/icon_size"
+            android:layout_height="@dimen/icon_size"
+            android:layout_marginEnd="@dimen/spacing_small"
+            android:importantForAccessibility="no"
+            android:src="@{icon}"
+            android:visibility="@{FormatterHelper.formatVisibilityIcon(icon)}"
+            app:layout_constraintBottom_toBottomOf="@id/navigation_row_title"
+            app:layout_constraintEnd_toStartOf="@+id/navigation_row_title"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="@id/navigation_row_title" />
+
+        <TextView
+            android:id="@+id/navigation_row_title"
+            style="@style/headline5Tint"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:focusable="true"
+            android:text="@{title}"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
+            app:layout_constraintStart_toEndOf="@+id/navigation_row_icon"
+            app:layout_constraintTop_toTopOf="parent"
+            tools:text="@string/settings_notifications_button_open_settings" />
 
-            <ImageView
-                android:id="@+id/navigation_row_icon"
-                style="@style/icon"
-                android:layout_width="@dimen/icon_size_settings"
-                android:layout_height="@dimen/icon_size_settings"
-                android:layout_marginEnd="@dimen/spacing_small"
-                android:importantForAccessibility="no"
-                android:src="@{icon}"
-                android:visibility="@{FormatterHelper.formatVisibilityIcon(icon)}"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toStartOf="@+id/navigation_row_subtitle"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <TextView
-                android:id="@+id/navigation_row_subtitle"
-                style="@style/headline5Tint"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:text="@{subtitle}"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toEndOf="@+id/navigation_row_icon"
-                app:layout_constraintTop_toTopOf="parent"
-                tools:text="@string/settings_notifications_button_open_settings" />
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
+        <TextView
+            android:id="@+id/navigation_row_subtitle"
+            style="@style/body2"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/spacing_tiny"
+            android:text="@{subtitle}"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="@id/navigation_row_title"
+            app:layout_constraintTop_toBottomOf="@id/navigation_row_title" />
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml b/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
index 803f64096..358342e65 100644
--- a/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
+++ b/Corona-Warn-App/src/main/res/layout/include_submission_contact.xml
@@ -16,8 +16,8 @@
                 android:id="@+id/submission_contact_illustration"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:src="@drawable/ic_submission_illustration_hotline"
                 android:focusable="true"
+                android:src="@drawable/ic_submission_illustration_hotline"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
@@ -30,8 +30,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_small"
-                android:text="@string/submission_contact_body"
                 android:focusable="true"
+                android:text="@string/submission_contact_body"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@id/submission_contact_illustration" />
@@ -39,12 +39,12 @@
             <TextView
                 android:id="@+id/submission_contact_headline"
                 style="@style/headline5"
-                android:accessibilityHeading="true"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_medium"
-                android:text="@string/submission_contact_headline"
+                android:accessibilityHeading="true"
                 android:focusable="true"
+                android:text="@string/submission_contact_headline"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toStartOf="@id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@+id/submission_contact_body" />
@@ -54,8 +54,8 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/spacing_normal"
-                android:focusable="true"
                 android:contentDescription="@string/submission_contact_step_1_content"
+                android:focusable="true"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@id/submission_contact_headline"
@@ -77,30 +77,40 @@
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toTopOf="parent" />
 
-                    <TextView
-                        android:id="@+id/submission_contact_step_1_number"
-                        style="@style/headline5"
-                        android:accessibilityHeading="true"
+                    <include
+                        android:id="@+id/submission_contact_navigation_row_phone"
+                        layout="@layout/include_navigation_row"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/spacing_small"
-                        android:text="@string/submission_contact_number_display"
-                        android:textColor="@color/colorTextTint"
-                        android:clickable="true"
+                        android:layout_marginTop="@dimen/spacing_normal"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@id/submission_contact_step_1_body"
+                        app:subtitle="@{@string/information_contact_button_phone_description}"
+                        app:title="@{@string/submission_contact_number_display}" />
+
+                    <include
+                        android:id="@+id/submission_contact_navigation_row_international_phone"
+                        layout="@layout/include_navigation_row"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/spacing_normal"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@id/submission_contact_step_1_body" />
+                        app:layout_constraintTop_toBottomOf="@id/submission_contact_navigation_row_phone"
+                        app:subtitle="@{@string/information_contact_button_international_phone_description}"
+                        app:title="@{@string/submission_contact_button_international_phone}" />
 
                     <TextView
                         android:id="@+id/submission_contact_operating_hours_body"
                         style="@style/body2"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/spacing_small"
+                        android:layout_marginTop="@dimen/spacing_normal"
                         android:text="@string/submission_contact_operating_hours_body"
                         app:layout_constraintEnd_toEndOf="parent"
                         app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@id/submission_contact_step_1_number" />
+                        app:layout_constraintTop_toBottomOf="@id/submission_contact_navigation_row_international_phone" />
 
                     <TextView
                         android:id="@+id/submission_contact_body_other"
@@ -121,8 +131,8 @@
                 android:id="@+id/submission_contact_step_2"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:focusable="true"
                 android:contentDescription="@string/submission_contact_step_2_content"
+                android:focusable="true"
                 app:layout_constraintEnd_toStartOf="@+id/guideline_end"
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@+id/submission_contact_step_1"
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 74344fff1..dc55328fc 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -784,12 +784,17 @@
     <string name="information_contact_subtitle_phone">"Technische Hotline:"</string>
     <!-- XLNK: Button / hyperlink to phone call for technical contact and hotline information page -->
     <string name="information_contact_button_phone">"0800 7540001"</string>
+    <string name="information_contact_button_international_phone">"+49 30 498 75401"</string>
+    <!-- XLNK: Description for national technical contact and hotline information page -->
+    <string name="information_contact_button_phone_description">"Für Anrufe innerhalb Deutschlands. Der Anruf ist kostenfrei."</string>
+    <!-- XLNK: Description for international technical contact and hotline information page -->
+    <string name="information_contact_button_international_phone_description">"Für Anrufe aus dem Ausland. Es fallen die Gebühren des jeweiligen Telefonanbieters an."</string>
     <!-- XBUT: CAUTION - ONLY UPDATE THE NUMBER IF NEEDED, ONLY NUMBERS AND NO SPECIAL CHARACTERS EXCEPT "+" and "space" ALLOWED IN THIS FIELD; -->
     <string name="information_contact_phone_call_number">"0800 7540001"</string>
     <!-- XTXT: Body text for technical contact and hotline information page -->
-    <string name="information_contact_body_phone">"Unser Kundenservice ist für Sie da."</string>
+    <string name="information_contact_body_phone">"Unser Kundenservice ist in den folgenden Sprachen für Sie da:"</string>
     <!-- YTXT: Body text for technical contact and hotline information page -->
-    <string name="information_contact_body_open">"Sprachen: Deutsch, Englisch, Türkisch \nErreichbarkeit:"<xliff:g id="line_break">"\n"</xliff:g>"Mo - Sa: 07:00 - 22:00 Uhr"<xliff:g id="line_break">"\n(außer an bundesweiten Feiertagen)"</xliff:g><xliff:g id="line_break">"\nDer Anruf ist kostenfrei."</xliff:g></string>
+    <string name="information_contact_body_open">"Deutsch, Englisch, Türkisch\n\nErreichbarkeit:\nMo – Sa: 07:00 – 22:00 Uhr\n(außer an bundesweiten Feiertagen)</string>
     <!-- YTXT: Body text for technical contact and hotline information page -->
     <string name="information_contact_body_other">"Für gesundheitliche Fragen wenden Sie sich bitte an Ihre Hausarztpraxis oder die Hotline des ärztlichen Bereitschaftsdienstes 116 117."</string>
     <!-- XACT: describes illustration -->
@@ -1284,7 +1289,7 @@
     <!-- YTXT: Body text for step 2 of contact page-->
     <string name="submission_contact_step_2_body">"Geben Sie die TAN in der App ein, um Ihren Test zu registrieren."</string>
     <!-- YTXT: Body text for operating hours in contact page-->
-    <string name="submission_contact_operating_hours_body">"Sprachen:\nDeutsch, Englisch, Türkisch\n\nErreichbarkeit:\ntäglich 24 Stunden\n\nDer Anruf ist kostenfrei."</string>
+    <string name="submission_contact_operating_hours_body">"Unser Kundenservice ist in den folgenden Sprachen für Sie da: Deutsch, Englisch, Türkisch \n\nErreichbarkeit:\nMo-So: Täglich 24 Stunden"</string>
     <!-- YTXT: Body text for technical contact and hotline information page -->
     <string name="submission_contact_body_other">"Für gesundheitliche Fragen wenden Sie sich bitte an Ihre Hausarztpraxis oder die Hotline des ärztlichen Bereitschaftsdienstes 116 117."</string>
 
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index 530da0471..df58bc8a5 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -792,6 +792,14 @@
     <string name="information_contact_subtitle_phone">"Technical hotline:"</string>
     <!-- XLNK: Button / hyperlink to phone call for technical contact and hotline information page -->
     <string name="information_contact_button_phone">"0800 7540001"</string>
+    <!-- XLNK: Button / hyperlink to international phone call for technical contact and hotline information page -->
+    <string name="information_contact_button_international_phone">"+49 30 498 75401"</string>
+    <!-- XLNK: Button / hyperlink to international phone call for technical contact and hotline TAN info page -->
+    <string name="submission_contact_button_international_phone">"+49 30 498 75402"</string>
+    <!-- XLNK: Description for national technical contact and hotline information page -->
+    <string name="information_contact_button_phone_description">"Für Anrufe innerhalb Deutschlands. Der Anruf ist kostenfrei."</string>
+    <!-- XLNK: Description for international technical contact and hotline information page -->
+    <string name="information_contact_button_international_phone_description">"Für Anrufe aus dem Ausland. Es fallen die Gebühren des jeweiligen Telefonanbieters an."</string>
     <!-- XBUT: CAUTION - ONLY UPDATE THE NUMBER IF NEEDED, ONLY NUMBERS AND NO SPECIAL CHARACTERS EXCEPT "+" and "space" ALLOWED IN THIS FIELD; -->
     <string name="information_contact_phone_call_number">"0800 7540001"</string>
     <!-- XTXT: Body text for technical contact and hotline information page -->
diff --git a/Corona-Warn-App/src/main/res/values/styles.xml b/Corona-Warn-App/src/main/res/values/styles.xml
index ecacc05a6..467e7521f 100644
--- a/Corona-Warn-App/src/main/res/values/styles.xml
+++ b/Corona-Warn-App/src/main/res/values/styles.xml
@@ -188,6 +188,11 @@
         <item name="android:textColor">@color/colorTextPrimary1</item>
     </style>
 
+    <style name="phoneNumber">
+        <item name="android:textAllCaps">false</item>
+        <item name="android:background">?selectableItemBackground</item>
+    </style>
+
     <style name="rowSettings" parent="@style/row">
         <item name="android:paddingStart">0dp</item>
     </style>
-- 
GitLab