mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
dim past events when appropriate at the weekly view too
This commit is contained in:
@@ -47,6 +47,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
private var isFragmentVisible = false
|
private var isFragmentVisible = false
|
||||||
private var wasFragmentInit = false
|
private var wasFragmentInit = false
|
||||||
private var wasExtraHeightAdded = false
|
private var wasExtraHeightAdded = false
|
||||||
|
private var dimPastEvents = true
|
||||||
private var clickStartTime = 0L
|
private var clickStartTime = 0L
|
||||||
private var selectedGrid: View? = null
|
private var selectedGrid: View? = null
|
||||||
private var todayColumnIndex = -1
|
private var todayColumnIndex = -1
|
||||||
@@ -70,6 +71,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
mRowHeight = (context!!.resources.getDimension(R.dimen.weekly_view_row_height)).toInt()
|
mRowHeight = (context!!.resources.getDimension(R.dimen.weekly_view_row_height)).toInt()
|
||||||
minScrollY = mRowHeight * context!!.config.startWeeklyAt
|
minScrollY = mRowHeight * context!!.config.startWeeklyAt
|
||||||
mWeekTimestamp = arguments!!.getInt(WEEK_START_TIMESTAMP)
|
mWeekTimestamp = arguments!!.getInt(WEEK_START_TIMESTAMP)
|
||||||
|
dimPastEvents = context!!.config.dimPastEvents
|
||||||
primaryColor = context!!.getAdjustedPrimaryColor()
|
primaryColor = context!!.getAdjustedPrimaryColor()
|
||||||
mRes = resources
|
mRes = resources
|
||||||
allDayRows.add(HashSet())
|
allDayRows.add(HashSet())
|
||||||
@@ -272,9 +274,15 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
val duration = endDateTime.minuteOfDay - startMinutes
|
val duration = endDateTime.minuteOfDay - startMinutes
|
||||||
|
|
||||||
(inflater.inflate(R.layout.week_event_marker, null, false) as TextView).apply {
|
(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)
|
background = ColorDrawable(backgroundColor)
|
||||||
setTextColor(backgroundColor.getContrastColor())
|
setTextColor(textColor)
|
||||||
text = event.title
|
text = event.title
|
||||||
layout.addView(this)
|
layout.addView(this)
|
||||||
y = startMinutes * minuteHeight
|
y = startMinutes * minuteHeight
|
||||||
@@ -341,9 +349,15 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
if (activity == null)
|
if (activity == null)
|
||||||
return
|
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)
|
background = ColorDrawable(backgroundColor)
|
||||||
setTextColor(backgroundColor.getContrastColor())
|
|
||||||
|
setTextColor(textColor)
|
||||||
text = event.title
|
text = event.title
|
||||||
|
|
||||||
val startDateTime = Formatter.getDateTimeFromTS(event.startTS)
|
val startDateTime = Formatter.getDateTimeFromTS(event.startTS)
|
||||||
|
@@ -709,11 +709,11 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
if (event.repeatInterval.isXWeeklyRepetition()) {
|
if (event.repeatInterval.isXWeeklyRepetition()) {
|
||||||
if (event.startTS.isTsOnProperDay(event)) {
|
if (event.startTS.isTsOnProperDay(event)) {
|
||||||
if (isOnProperWeek(event, startTimes)) {
|
if (isOnProperWeek(event, startTimes)) {
|
||||||
events.add(event.copy(isPastEvent = event.getIsPastEvent()))
|
events.add(event.copy(isPastEvent = getIsPastEvent(event)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} 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.repeatInterval.isXWeeklyRepetition()) {
|
||||||
if (event.endTS >= toTS && event.startTS.isTsOnProperDay(event)) {
|
if (event.endTS >= toTS && event.startTS.isTsOnProperDay(event)) {
|
||||||
if (isOnProperWeek(event, startTimes)) {
|
if (isOnProperWeek(event, startTimes)) {
|
||||||
events.add(event.copy(isPastEvent = event.getIsPastEvent()))
|
events.add(event.copy(isPastEvent = getIsPastEvent(event)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val dayCode = Formatter.getDayCodeFromTS(fromTS)
|
val dayCode = Formatter.getDayCodeFromTS(fromTS)
|
||||||
val endDayCode = Formatter.getDayCodeFromTS(event.endTS)
|
val endDayCode = Formatter.getDayCodeFromTS(event.endTS)
|
||||||
if (dayCode == endDayCode) {
|
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 (event.startTS.isTsOnProperDay(event)) {
|
||||||
if (isOnProperWeek(event, startTimes)) {
|
if (isOnProperWeek(event, startTimes)) {
|
||||||
if (event.endTS >= fromTS) {
|
if (event.endTS >= fromTS) {
|
||||||
events.add(event.copy(isPastEvent = event.getIsPastEvent()))
|
events.add(event.copy(isPastEvent = getIsPastEvent(event)))
|
||||||
}
|
}
|
||||||
event.repeatLimit++
|
event.repeatLimit++
|
||||||
}
|
}
|
||||||
@@ -757,7 +757,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
val dayCode = Formatter.getDayCodeFromTS(fromTS)
|
val dayCode = Formatter.getDayCodeFromTS(fromTS)
|
||||||
val endDayCode = Formatter.getDayCodeFromTS(event.endTS)
|
val endDayCode = Formatter.getDayCodeFromTS(event.endTS)
|
||||||
if (dayCode == endDayCode) {
|
if (dayCode == endDayCode) {
|
||||||
events.add(event.copy(isPastEvent = event.getIsPastEvent()))
|
events.add(event.copy(isPastEvent = getIsPastEvent(event)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.repeatLimit++
|
event.repeatLimit++
|
||||||
@@ -1043,4 +1043,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
cursor?.close()
|
cursor?.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getIsPastEvent(event: Event) = event.endTS < System.currentTimeMillis() / 1000
|
||||||
}
|
}
|
||||||
|
@@ -118,7 +118,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() {
|
|||||||
var backgroundColor = it.color
|
var backgroundColor = it.color
|
||||||
var eventTextColor = backgroundColor.getContrastColor()
|
var eventTextColor = backgroundColor.getContrastColor()
|
||||||
|
|
||||||
if (!day.isThisMonth || (dimPastEvents && it.getIsPastEvent())) {
|
if (!day.isThisMonth || (dimPastEvents && it.isPastEvent)) {
|
||||||
eventTextColor = eventTextColor.adjustAlpha(0.25f)
|
eventTextColor = eventTextColor.adjustAlpha(0.25f)
|
||||||
backgroundColor = backgroundColor.adjustAlpha(0.25f)
|
backgroundColor = backgroundColor.adjustAlpha(0.25f)
|
||||||
}
|
}
|
||||||
|
@@ -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 getCalDAVCalendarId() = if (source.startsWith(CALDAV)) (source.split("-").lastOrNull() ?: "0").toString().toInt() else 0
|
||||||
|
|
||||||
fun getIsPastEvent() = endTS < System.currentTimeMillis() / 1000
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user