From 614b17e36fd84a650504232ea1b06fe15e1dcdb7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 May 2018 22:33:15 +0200 Subject: [PATCH] dim past events when appropriate at the weekly view too --- .../calendar/fragments/WeekFragment.kt | 22 +++++++++++++++---- .../calendar/helpers/DBHelper.kt | 14 +++++++----- .../helpers/MyWidgetMonthlyProvider.kt | 2 +- .../calendar/models/Event.kt | 2 -- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt index d96f890fb..7e52aff26 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/WeekFragment.kt @@ -47,6 +47,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { private var isFragmentVisible = false private var wasFragmentInit = false private var wasExtraHeightAdded = false + private var dimPastEvents = true private var clickStartTime = 0L private var selectedGrid: View? = null private var todayColumnIndex = -1 @@ -70,6 +71,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { mRowHeight = (context!!.resources.getDimension(R.dimen.weekly_view_row_height)).toInt() minScrollY = mRowHeight * context!!.config.startWeeklyAt mWeekTimestamp = arguments!!.getInt(WEEK_START_TIMESTAMP) + dimPastEvents = context!!.config.dimPastEvents primaryColor = context!!.getAdjustedPrimaryColor() mRes = resources allDayRows.add(HashSet()) @@ -272,9 +274,15 @@ class WeekFragment : Fragment(), WeeklyCalendar { val duration = endDateTime.minuteOfDay - startMinutes (inflater.inflate(R.layout.week_event_marker, null, false) as TextView).apply { - val backgroundColor = eventTypeColors.get(event.eventType, primaryColor) + var backgroundColor = eventTypeColors.get(event.eventType, primaryColor) + var textColor = backgroundColor.getContrastColor() + if (dimPastEvents && event.isPastEvent) { + backgroundColor = backgroundColor.adjustAlpha(LOW_ALPHA) + textColor = textColor.adjustAlpha(LOW_ALPHA) + } + background = ColorDrawable(backgroundColor) - setTextColor(backgroundColor.getContrastColor()) + setTextColor(textColor) text = event.title layout.addView(this) y = startMinutes * minuteHeight @@ -341,9 +349,15 @@ class WeekFragment : Fragment(), WeeklyCalendar { if (activity == null) return - val backgroundColor = eventTypeColors.get(event.eventType, primaryColor) + var backgroundColor = eventTypeColors.get(event.eventType, primaryColor) + var textColor = backgroundColor.getContrastColor() + if (dimPastEvents && event.isPastEvent) { + backgroundColor = backgroundColor.adjustAlpha(LOW_ALPHA) + textColor = textColor.adjustAlpha(LOW_ALPHA) + } background = ColorDrawable(backgroundColor) - setTextColor(backgroundColor.getContrastColor()) + + setTextColor(textColor) text = event.title val startDateTime = Formatter.getDateTimeFromTS(event.startTS) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt index 7e96d07db..2492bb25c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt @@ -709,11 +709,11 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont if (event.repeatInterval.isXWeeklyRepetition()) { if (event.startTS.isTsOnProperDay(event)) { if (isOnProperWeek(event, startTimes)) { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } } } else { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } } @@ -721,14 +721,14 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont if (event.repeatInterval.isXWeeklyRepetition()) { if (event.endTS >= toTS && event.startTS.isTsOnProperDay(event)) { if (isOnProperWeek(event, startTimes)) { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } } } else { val dayCode = Formatter.getDayCodeFromTS(fromTS) val endDayCode = Formatter.getDayCodeFromTS(event.endTS) if (dayCode == endDayCode) { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } } } @@ -745,7 +745,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont if (event.startTS.isTsOnProperDay(event)) { if (isOnProperWeek(event, startTimes)) { if (event.endTS >= fromTS) { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } event.repeatLimit++ } @@ -757,7 +757,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont val dayCode = Formatter.getDayCodeFromTS(fromTS) val endDayCode = Formatter.getDayCodeFromTS(event.endTS) if (dayCode == endDayCode) { - events.add(event.copy(isPastEvent = event.getIsPastEvent())) + events.add(event.copy(isPastEvent = getIsPastEvent(event))) } } event.repeatLimit++ @@ -1043,4 +1043,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont cursor?.close() } } + + private fun getIsPastEvent(event: Event) = event.endTS < System.currentTimeMillis() / 1000 } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt index 6acb39b8d..4e8ae0f6e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt @@ -118,7 +118,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { var backgroundColor = it.color var eventTextColor = backgroundColor.getContrastColor() - if (!day.isThisMonth || (dimPastEvents && it.getIsPastEvent())) { + if (!day.isThisMonth || (dimPastEvents && it.isPastEvent)) { eventTextColor = eventTextColor.adjustAlpha(0.25f) backgroundColor = backgroundColor.adjustAlpha(0.25f) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt index ee30b8e80..8504b5a34 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt @@ -112,6 +112,4 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var } fun getCalDAVCalendarId() = if (source.startsWith(CALDAV)) (source.split("-").lastOrNull() ?: "0").toString().toInt() else 0 - - fun getIsPastEvent() = endTS < System.currentTimeMillis() / 1000 }