From ac2c787caa862ba7a67497c29fd70c568643241b Mon Sep 17 00:00:00 2001
From: Mohamed Metwalli <mohamed.metwalli@sap.com>
Date: Thu, 21 Jan 2021 16:39:43 +0100
Subject: [PATCH] UI Changes for Exposure Windows - Text
 issues(EXPOSUREAPP-4037) (#2171)

* Remove unknown risk item from overview screen

* Use date instead of days

* Introduce a new string

Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../de/rki/coronawarnapp/ui/tracing/TracingData.kt  |  6 +-----
 .../ui/details/TracingDetailsItemProvider.kt        | 10 ++--------
 .../items/riskdetails/DetailsIncreasedRiskBox.kt    | 13 +++++++------
 .../src/main/res/layout/fragment_main_overview.xml  | 11 -----------
 ...cing_details_item_riskdetails_increased_view.xml |  2 +-
 Corona-Warn-App/src/main/res/values-de/strings.xml  |  2 ++
 Corona-Warn-App/src/main/res/values/strings.xml     |  2 ++
 7 files changed, 15 insertions(+), 31 deletions(-)

diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/tracing/TracingData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/tracing/TracingData.kt
index 7679a4aad..e02ca5fad 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/tracing/TracingData.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/tracing/TracingData.kt
@@ -17,7 +17,6 @@ import de.rki.coronawarnapp.tracing.ui.details.items.risk.TracingFailedBox
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsFailedCalculationBox
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsIncreasedRiskBox
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsLowRiskBox
-import org.joda.time.Duration
 import org.joda.time.Instant
 
 object TracingData {
@@ -95,10 +94,7 @@ object TracingData {
             PeriodLoggedBox.Item(activeTracingDaysInRetentionPeriod = 5),
             DetailsIncreasedRiskBox.Item(
                 riskState = RiskState.INCREASED_RISK,
-                lastEncounterDaysAgo = Duration(
-                    Instant.EPOCH,
-                    Instant.now()
-                ).standardDays.toInt()
+                lastEncounteredAt = Instant.now()
             )
         )
     )
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProvider.kt
index c7ff37286..22b2b6df8 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProvider.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsItemProvider.kt
@@ -14,13 +14,11 @@ import de.rki.coronawarnapp.tracing.ui.details.items.periodlogged.PeriodLoggedBo
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsFailedCalculationBox
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsIncreasedRiskBox
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsLowRiskBox
-import de.rki.coronawarnapp.util.TimeStamper
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.onCompletion
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.flow.onStart
-import org.joda.time.Duration
 import org.joda.time.Instant
 import timber.log.Timber
 import javax.inject.Inject
@@ -29,8 +27,7 @@ import javax.inject.Inject
 class TracingDetailsItemProvider @Inject constructor(
     tracingStatus: GeneralTracingStatus,
     tracingRepository: TracingRepository,
-    riskLevelStorage: RiskLevelStorage,
-    private val timeStamper: TimeStamper
+    riskLevelStorage: RiskLevelStorage
 ) {
 
     val state: Flow<List<DetailsItem>> = combine(
@@ -69,10 +66,7 @@ class TracingDetailsItemProvider @Inject constructor(
                 )
                 RiskState.INCREASED_RISK -> DetailsIncreasedRiskBox.Item(
                     riskState = latestCalc.riskState,
-                    lastEncounterDaysAgo = Duration(
-                        latestCalc.lastRiskEncounterAt ?: Instant.EPOCH,
-                        timeStamper.nowUTC
-                    ).standardDays.toInt()
+                    lastEncounteredAt = latestCalc.lastRiskEncounterAt ?: Instant.EPOCH
                 )
                 RiskState.CALCULATION_FAILED -> DetailsFailedCalculationBox.Item
             }.also { add(it) }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/items/riskdetails/DetailsIncreasedRiskBox.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/items/riskdetails/DetailsIncreasedRiskBox.kt
index f0d262165..bd31824f2 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/items/riskdetails/DetailsIncreasedRiskBox.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/items/riskdetails/DetailsIncreasedRiskBox.kt
@@ -8,6 +8,8 @@ import de.rki.coronawarnapp.databinding.TracingDetailsItemRiskdetailsIncreasedVi
 import de.rki.coronawarnapp.risk.RiskState
 import de.rki.coronawarnapp.tracing.ui.details.TracingDetailsAdapter
 import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsIncreasedRiskBox.Item
+import de.rki.coronawarnapp.util.TimeAndDateExtensions.toLocalDate
+import org.joda.time.Instant
 
 class DetailsIncreasedRiskBox(
     parent: ViewGroup,
@@ -34,13 +36,12 @@ class DetailsIncreasedRiskBox(
 
     data class Item(
         val riskState: RiskState,
-        val lastEncounterDaysAgo: Int
+        val lastEncounteredAt: Instant
     ) : RiskDetailsStateItem {
 
-        fun getRiskDetailsRiskLevelBody(c: Context): String = c.resources.getQuantityString(
-            R.plurals.risk_details_information_body_increased_risk,
-            lastEncounterDaysAgo,
-            lastEncounterDaysAgo
-        )
+        fun getRiskDetailsRiskLevelBody(context: Context): String {
+            val date = lastEncounteredAt.toLocalDate().toString("dd.MM.yyyy")
+            return context.resources.getString(R.string.risk_details_information_body_increased_risk_date, date)
+        }
     }
 }
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
index 8cc2ca342..97bca9ef8 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_main_overview.xml
@@ -129,17 +129,6 @@
                         app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_increased_risk"
                         app:subtitle="@{@string/main_overview_subtitle_low_risk}" />
 
-                    <include
-                        android:id="@+id/main_overview_risk_unknown_risk"
-                        layout="@layout/include_main_overview_row"
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        app:icon="@{@drawable/ic_main_overview_circle}"
-                        app:iconTint="@{@color/colorSemanticNeutralRisk}"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@+id/main_overview_risk_low_risk"
-                        app:subtitle="@{@string/main_overview_subtitle_unknown_risk}" />
                 </androidx.constraintlayout.widget.ConstraintLayout>
 
                 <include
diff --git a/Corona-Warn-App/src/main/res/layout/tracing_details_item_riskdetails_increased_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_details_item_riskdetails_increased_view.xml
index 0c23ce655..6d1bef911 100644
--- a/Corona-Warn-App/src/main/res/layout/tracing_details_item_riskdetails_increased_view.xml
+++ b/Corona-Warn-App/src/main/res/layout/tracing_details_item_riskdetails_increased_view.xml
@@ -50,7 +50,7 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/risk_details_information_subtitle"
-            tools:text="@plurals/risk_details_information_body_increased_risk" />
+            tools:text="@string/risk_details_information_body_increased_risk_date" />
 
         <TextView
             android:id="@+id/risk_details_information_body_notice"
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 236e04f0d..a971fe0d5 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -329,6 +329,8 @@
     <string name="risk_details_information_body_low_risk">"Sie haben ein niedriges Infektionsrisiko, da keine Begegnung mit nachweislich Corona-positiv getesteten Personen aufgezeichnet wurde oder sich Ihre Begegnung auf kurze Zeit und einen größeren Abstand beschränkt hat."</string>
     <!-- YTXT: risk details - low risk explanation text with encounter with low risk -->
     <string name="risk_details_information_body_low_risk_with_encounter">"Das Infektionsrisiko wird anhand der Daten der Risiko-Ermittlung unter Berücksichtigung des Abstands und der Dauer von Begegnungen mit nachweislich Corona-positiv getesteten Personen sowie deren vermutlicher Infektiosität lokal auf Ihrem Smartphone berechnet. Ihr Infektionsrisiko ist für niemanden einsehbar und wird nicht weitergegeben."</string>
+    <!-- YTXT: risk details - increased risk explanation text with variable date since last contact -->
+    <string name="risk_details_information_body_increased_risk_date">"Sie haben ein erhöhtes Infektionsrisiko, da Sie zuletzt am %1$s mindestens einer nachweislich Corona-positiv getesteten Person über einen längeren Zeitraum und mit einem geringen Abstand begegnet sind."</string>
     <!-- YTXT: risk details - increased risk explanation text with variable for day(s) since last contact -->
     <plurals name="risk_details_information_body_increased_risk">
         <item quantity="one">"Sie haben ein erhöhtes Infektionsrisiko, da Sie zuletzt vor %1$s Tag mindestens einer nachweislich Corona-positiv getesteten Person über einen längeren Zeitraum und mit einem geringen Abstand begegnet sind."</item>
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index e5f241e13..e9fceccb2 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -333,6 +333,8 @@
     <string name="risk_details_information_body_low_risk">"You have a low risk of infection because no exposure to people later diagnosed with COVID-19 was logged, or because your encounters were only for a short time and at a greater distance."</string>
     <!-- YTXT: risk details - low risk explanation text with encounter with low risk -->
     <string name="risk_details_information_body_low_risk_with_encounter">"The risk of infection is calculated locally on your smartphone, using exposure logging data. The calculation also takes into account distance and duration of any exposure to persons diagnosed with coronavirus, as well as their potential infectiousness. Your risk of infection cannot be seen by or passed on to anyone else."</string>
+    <!-- YTXT: risk details - increased risk explanation text with variable date since last contact -->
+    <string name="risk_details_information_body_increased_risk_date">"You have an increased risk of infection because you were last exposed on %1$s over a longer period of time and at close proximity to at least one person diagnosed with coronavirus."</string>
     <!-- YTXT: risk details - increased risk explanation text with variable for day(s) since last contact -->
     <plurals name="risk_details_information_body_increased_risk">
         <item quantity="one">"You have an increased risk of infection because you were last exposed %1$s days ago over a longer period of time and at close proximity to at least one person diagnosed with coronavirus."</item>
-- 
GitLab