From 54eb836348f8842d0831b1dd84cb78e9009937ee Mon Sep 17 00:00:00 2001
From: BMItter <46747780+BMItter@users.noreply.github.com>
Date: Mon, 28 Sep 2020 12:44:03 +0200
Subject: [PATCH] Encounter with low risk missing link in risk details
 (EXPOSUREAPP-2883) (#1243)

* updated risk details information body with new text and link (please check twice the text)

* Revert "updated risk details information body with new text and link (please check twice the text)"

This reverts commit 917fdc5715eeb9334dd98be24f522b185adf1cdd.

* missing link fixed for low exposure state risk details (draft)

* fixed link

* testable version for fixed link (on low exposure state)

* Fix not clickable link (#2883)

* fixed herlink convert input reference

* provide default link for encounter but green

* removed testcode for checking low risk exposure state

Co-authored-by: Mert Safter <mert.safter@sap.com>
---
 .../ui/riskdetails/RiskDetailsFragment.kt        | 11 +++++++++++
 .../util/formatter/FormatterRiskHelper.kt        | 10 ++++++++++
 .../main/res/layout/fragment_risk_details.xml    | 16 +++++++++++++++-
 .../src/main/res/values-de/strings.xml           |  2 ++
 Corona-Warn-App/src/main/res/values/strings.xml  |  3 ++-
 5 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
index db5bba738..65ec35753 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/riskdetails/RiskDetailsFragment.kt
@@ -8,6 +8,7 @@ import android.view.accessibility.AccessibilityEvent
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.activityViewModels
 import androidx.navigation.fragment.findNavController
+import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.databinding.FragmentRiskDetailsBinding
 import de.rki.coronawarnapp.timer.TimerHelper
 import de.rki.coronawarnapp.ui.doNavigate
@@ -15,6 +16,7 @@ import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.ui.viewLifecycle
 import de.rki.coronawarnapp.ui.viewmodel.SettingsViewModel
 import de.rki.coronawarnapp.ui.viewmodel.TracingViewModel
+import de.rki.coronawarnapp.util.convertToHyperlink
 
 /**
  * This is the detail view of the risk card if additional information for the user.
@@ -47,6 +49,7 @@ class RiskDetailsFragment : Fragment() {
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
         setButtonOnClickListeners()
+        setUpWebLinks()
     }
 
     override fun onResume() {
@@ -60,6 +63,14 @@ class RiskDetailsFragment : Fragment() {
         binding.riskDetailsContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT)
     }
 
+    /**
+     * Make the links clickable and convert to hyperlink
+     */
+    private fun setUpWebLinks() {
+        binding.riskDetailsInformationLowriskBodyUrl
+            .convertToHyperlink(getString(R.string.risk_details_explanation_faq_body_with_link))
+    }
+
     private fun setButtonOnClickListeners() {
         binding.riskDetailsHeaderButtonBack.setOnClickListener {
             (activity as MainActivity).goBack()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterRiskHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterRiskHelper.kt
index 4c06814ba..bf158e896 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterRiskHelper.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterRiskHelper.kt
@@ -583,6 +583,16 @@ fun formatVisibilityBehavior(riskLevelScore: Int?): Int =
 fun formatVisibilityBehaviorIncreasedRisk(riskLevelScore: Int?): Int =
     formatVisibility(riskLevelScore == RiskLevelConstants.INCREASED_RISK)
 
+/**
+ * Format the risk details include display for suggested behavior depending on risk level
+ * Only applied in special case for low level risk
+ *
+ * @param riskLevelScore
+ * @return
+ */
+fun formatVisibilityBehaviorLowLevelRisk(riskLevelScore: Int?): Int =
+    formatVisibility(riskLevelScore == RiskLevelConstants.LOW_LEVEL_RISK)
+
 /**
  * Format the risk details period logged card display  depending on risk level
  * applied in case of low and high risk levels
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml b/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
index e538e5b2b..a28df3528 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_risk_details.xml
@@ -264,6 +264,20 @@
                         app:layout_constraintStart_toStartOf="parent"
                         app:layout_constraintTop_toBottomOf="@+id/risk_details_information_body" />
 
+                    <TextView
+                        android:id="@+id/risk_details_information_lowrisk_body_url"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/spacing_normal"
+                        android:text="@string/risk_details_explanation_faq_body_with_link"
+                        android:visibility="@{FormatterRiskHelper.formatVisibilityBehaviorLowLevelRisk(tracingViewModel.riskLevel)}"
+                        android:focusable="true"
+                        android:clickable="true"
+                        android:linksClickable="true"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toBottomOf="@+id/risk_details_information_body_notice" />
+
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
                 <androidx.constraintlayout.widget.Guideline
@@ -271,7 +285,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:orientation="vertical"
-                    app:layout_constraintGuide_begin="@dimen/guideline_start" />
+                    app:layout_constraintGuide_begin="@dimen/guideline_top" />
 
                 <androidx.constraintlayout.widget.Guideline
                     android:id="@+id/guideline_end"
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 4c1a1c9a3..ae7bb3001 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -372,6 +372,8 @@
     <string name="risk_details_explanation_dialog_title">"Information zur Funktionsweise der Risiko-Ermittlung"</string>
     <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information-->
     <string name="risk_details_explanation_dialog_faq_body">"Weitere Informationen finden Sie in den FAQ."</string>
+    <!-- XLNK: risk explanations and informations - pointing to the faq page for more information and contains hyperlink-->
+    <string name="risk_details_explanation_faq_body_with_link"><a href="https://www.coronawarn.app/de/faq/#encounter_but_green">Weitere Informationen finden Sie in den FAQ.</a></string>
 
     <!-- ####################################
               Onboarding
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index 588e97f50..43f203857 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -374,7 +374,8 @@
     <string name="risk_details_explanation_dialog_title">"Information about exposure logging functionality"</string>
     <!-- YTXT: one time risk explanation dialog - pointing to the faq page for more information-->
     <string name="risk_details_explanation_dialog_faq_body">"For further information, please see our FAQ page."</string>
-
+    <!-- XLNK: risk explanations and informations - pointing to the faq page for more information and contains hyperlink-->
+    <string name="risk_details_explanation_faq_body_with_link"><a href="https://www.coronawarn.app/en/faq/#encounter_but_green">For further information, please see our FAQ page.</a>"</string>
     <!-- ####################################
               Onboarding
     ###################################### -->
-- 
GitLab