From ae5edbc491bba030184f0776c408ca41c6ddcb73 Mon Sep 17 00:00:00 2001
From: Oliver Zimmerman <oezimmerman@gmail.com>
Date: Tue, 6 Oct 2020 16:47:00 +0100
Subject: [PATCH] Add option to skip Symptoms Screens from Test Result
 (EXPOSUREAPP-3075) (#1334)

* Added button in layout for continuing without symptoms. Adjusted existing button text

* Added new button, tweaked navigation and logic

* Changed symptom indication to no indication appropriately

* code style changes

* added navigation related boolean to method rather than predefined

* code style

Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../fragment/SubmissionTestResultFragment.kt  | 24 ++++++++++++++-----
 .../fragment_submission_test_result.xml       | 16 +++++++++++--
 .../src/main/res/navigation/nav_graph.xml     |  3 +++
 3 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
index 4e70213b3..98187e8c8 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionTestResultFragment.kt
@@ -132,7 +132,12 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
         }
 
         binding.submissionTestResultButtonPositiveContinue.setOnClickListener {
-            continueIfTracingEnabled()
+            continueIfTracingEnabled(false)
+        }
+
+        binding.submissionTestResultButtonPositiveContinueWithoutSymptoms.setOnClickListener {
+            submissionViewModel.onNoInformationSymptomIndication()
+            continueIfTracingEnabled(true)
         }
 
         binding.submissionTestResultButtonInvalidRemoveTest.setOnClickListener {
@@ -146,7 +151,7 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
         }
     }
 
-    private fun continueIfTracingEnabled() {
+    private fun continueIfTracingEnabled(skipSymptomSubmission: Boolean) {
         if (tracingViewModel.isTracingEnabled.value != true) {
             val tracingRequiredDialog = DialogHelper.DialogInstance(
                 requireActivity(),
@@ -158,10 +163,17 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
             return
         }
 
-        findNavController().doNavigate(
-            SubmissionTestResultFragmentDirections
-                .actionSubmissionResultFragmentToSubmissionSymptomIntroductionFragment()
-        )
+        if (skipSymptomSubmission) {
+            findNavController().doNavigate(
+                SubmissionTestResultFragmentDirections
+                    .actionSubmissionResultFragmentToSubmissionResultPositiveOtherWarningFragment()
+            )
+        } else {
+            findNavController().doNavigate(
+                SubmissionTestResultFragmentDirections
+                    .actionSubmissionResultFragmentToSubmissionSymptomIntroductionFragment()
+            )
+        }
     }
 
     private fun removeTestAfterConfirmation() {
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result.xml
index d7bcd4594..a1b0cf12e 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result.xml
@@ -105,12 +105,24 @@
             style="@style/buttonPrimary"
             android:layout_width="@dimen/match_constraint"
             android:layout_height="wrap_content"
-            android:text="@string/submission_test_result_positive_continue_button"
+            android:text="@string/submission_test_result_positive_continue_button_with_symptoms"
+            android:visibility="@{FormatterSubmissionHelper.formatTestResultPositiveStepsVisible(submissionViewModel.deviceUiState)}"
+            app:layout_constraintBottom_toTopOf="@+id/submission_test_result_button_positive_continue_without_symptoms"
+            app:layout_constraintEnd_toStartOf="@+id/guideline_end"
+            app:layout_constraintStart_toStartOf="@id/guideline_start"
+            app:layout_constraintTop_toBottomOf="@+id/guideline_action_large" />
+
+        <Button
+            android:id="@+id/submission_test_result_button_positive_continue_without_symptoms"
+            style="@style/buttonPrimary"
+            android:layout_width="@dimen/match_constraint"
+            android:layout_height="wrap_content"
+            android:text="@string/submission_test_result_positive_continue_button_wo_symptoms"
             android:visibility="@{FormatterSubmissionHelper.formatTestResultPositiveStepsVisible(submissionViewModel.deviceUiState)}"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@+id/guideline_end"
             app:layout_constraintStart_toStartOf="@id/guideline_start"
-            app:layout_constraintTop_toTopOf="@id/guideline_action" />
+            app:layout_constraintTop_toBottomOf="@+id/submission_test_result_button_positive_continue" />
 
         <Button
             android:id="@+id/submission_test_result_button_negative_remove_test"
diff --git a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
index ac0bff96c..b8cdefde7 100644
--- a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
+++ b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
@@ -261,6 +261,9 @@
         <action
             android:id="@+id/action_submissionResultFragment_to_submissionSymptomIntroductionFragment"
             app:destination="@id/submissionSymptomIntroductionFragment" />
+        <action
+            android:id="@+id/action_submissionResultFragment_to_submissionResultPositiveOtherWarningFragment"
+            app:destination="@id/submissionResultPositiveOtherWarningFragment" />
     </fragment>
 
     <fragment
-- 
GitLab