mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
Merge pull request #2219 from naveensingh/dst_fix_2211
Properly calculate weekly day codes from start week timestamp
This commit is contained in:
@@ -48,6 +48,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
|
|
||||||
var listener: WeekFragmentListener? = null
|
var listener: WeekFragmentListener? = null
|
||||||
private var weekTimestamp = 0L
|
private var weekTimestamp = 0L
|
||||||
|
private var weekDateTime = DateTime()
|
||||||
private var rowHeight = 0f
|
private var rowHeight = 0f
|
||||||
private var todayColumnIndex = -1
|
private var todayColumnIndex = -1
|
||||||
private var primaryColor = 0
|
private var primaryColor = 0
|
||||||
@@ -91,6 +92,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
rowHeight = requireContext().getWeeklyViewItemHeight()
|
rowHeight = requireContext().getWeeklyViewItemHeight()
|
||||||
defaultRowHeight = res.getDimension(R.dimen.weekly_view_row_height)
|
defaultRowHeight = res.getDimension(R.dimen.weekly_view_row_height)
|
||||||
weekTimestamp = requireArguments().getLong(WEEK_START_TIMESTAMP)
|
weekTimestamp = requireArguments().getLong(WEEK_START_TIMESTAMP)
|
||||||
|
weekDateTime = Formatter.getDateTimeFromTS(weekTimestamp)
|
||||||
dimPastEvents = config.dimPastEvents
|
dimPastEvents = config.dimPastEvents
|
||||||
dimCompletedTasks = config.dimCompletedTasks
|
dimCompletedTasks = config.dimCompletedTasks
|
||||||
highlightWeekends = config.highlightWeekends
|
highlightWeekends = config.highlightWeekends
|
||||||
@@ -193,14 +195,14 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
binding.weekEventsColumnsHolder.removeAllViews()
|
binding.weekEventsColumnsHolder.removeAllViews()
|
||||||
(0 until config.weeklyViewDays).forEach {
|
(0 until config.weeklyViewDays).forEach {
|
||||||
val column = WeeklyViewDayColumnBinding.inflate(layoutInflater, binding.weekEventsColumnsHolder, false).root
|
val column = WeeklyViewDayColumnBinding.inflate(layoutInflater, binding.weekEventsColumnsHolder, false).root
|
||||||
column.tag = Formatter.getDayCodeFromTS(weekTimestamp + it * DAY_SECONDS)
|
column.tag = Formatter.getDayCodeFromDateTime(weekDateTime.plusDays(it))
|
||||||
binding.weekEventsColumnsHolder.addView(column)
|
binding.weekEventsColumnsHolder.addView(column)
|
||||||
dayColumns.add(column)
|
dayColumns.add(column)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupDayLabels() {
|
private fun setupDayLabels() {
|
||||||
var curDay = Formatter.getDateTimeFromTS(weekTimestamp)
|
var curDay = weekDateTime
|
||||||
val todayCode = Formatter.getDayCodeFromDateTime(DateTime())
|
val todayCode = Formatter.getDayCodeFromDateTime(DateTime())
|
||||||
val screenWidth = context?.usableScreenSize?.x ?: return
|
val screenWidth = context?.usableScreenSize?.x ?: return
|
||||||
val dayWidth = screenWidth / config.weeklyViewDays
|
val dayWidth = screenWidth / config.weeklyViewDays
|
||||||
@@ -273,7 +275,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
val event = context?.eventsDB?.getEventOrTaskWithId(eventId)
|
val event = context?.eventsDB?.getEventOrTaskWithId(eventId)
|
||||||
event?.let {
|
event?.let {
|
||||||
val currentStartTime = Formatter.getDateTimeFromTS(event.startTS)
|
val currentStartTime = Formatter.getDateTimeFromTS(event.startTS)
|
||||||
val startTime = Formatter.getDateTimeFromTS(weekTimestamp + index * DAY_SECONDS)
|
val startTime = weekDateTime.plusDays(index)
|
||||||
.withTime(
|
.withTime(
|
||||||
startHour,
|
startHour,
|
||||||
currentStartTime.minuteOfHour,
|
currentStartTime.minuteOfHour,
|
||||||
@@ -364,7 +366,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
applyColorFilter(primaryColor.getContrastColor())
|
applyColorFilter(primaryColor.getContrastColor())
|
||||||
|
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
val timestamp = Formatter.getDateTimeFromTS(weekTimestamp + index * DAY_SECONDS).withTime(hour, 0, 0, 0).seconds()
|
val timestamp = weekDateTime.plusDays(index).withTime(hour, 0, 0, 0).seconds()
|
||||||
if (config.allowCreatingTasks) {
|
if (config.allowCreatingTasks) {
|
||||||
val items = arrayListOf(
|
val items = arrayListOf(
|
||||||
RadioItem(TYPE_EVENT, getString(R.string.event)),
|
RadioItem(TYPE_EVENT, getString(R.string.event)),
|
||||||
|
Reference in New Issue
Block a user