From bcf0f9f1e13353a639a682cfb678d860108b70a6 Mon Sep 17 00:00:00 2001
From: Alex Paulescu <alex.paulescu@gmail.com>
Date: Wed, 14 Oct 2020 14:43:36 +0300
Subject: [PATCH] Disabled dates which exceed 21 days in the past
 (EXPOSUREAPP-3191) (#1385)

* Disabled dates which exceed 21 days in the past

* Fixed issue with detekt

* Fixed codesmell

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../ui/calendar/CalendarDayViewHolder.kt            | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/calendar/CalendarDayViewHolder.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/calendar/CalendarDayViewHolder.kt
index 393f585c0..3e3654695 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/calendar/CalendarDayViewHolder.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/calendar/CalendarDayViewHolder.kt
@@ -38,8 +38,8 @@ class CalendarDayViewHolder(v: View) : RecyclerView.ViewHolder(v) {
         // Set day content description for talk back
         textView.contentDescription = day.date.toString(talkBackDateFormat)
 
-        // If date is after today - then disable click listener
-        if (!day.date.isAfter(today)) {
+        // If date is after today or exceeds 21 days in the past- then disable click listener
+        if (!day.date.isAfter(today) && !day.date.isBefore(today.minusDays(ONSET_PERIOD))) {
             textView.setOnClickListener { clickListener(day) }
         }
 
@@ -55,8 +55,8 @@ class CalendarDayViewHolder(v: View) : RecyclerView.ViewHolder(v) {
                 textView.setBackgroundResource(R.drawable.calendar_today_back)
                 textView.setTextColor(ContextCompat.getColor(context, R.color.colorCalendarTodayText))
             }
-            // Future
-            day.date.isAfter(today) -> {
+            // Future & past exceeding 21 days
+            day.date.isAfter(today) || day.date.isBefore(today.minusDays(ONSET_PERIOD)) -> {
                 textView.setBackgroundResource(0)
                 textView.setTextColor(ContextCompat.getColor(context, R.color.colorTextPrimary3))
             }
@@ -67,4 +67,9 @@ class CalendarDayViewHolder(v: View) : RecyclerView.ViewHolder(v) {
             }
         }
     }
+
+    companion object {
+        // Max number of days for the onset of symptoms to be calculated
+        private const val ONSET_PERIOD = 21
+    }
 }
-- 
GitLab