mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
properly handle refreshing of the weekly view on day count change
This commit is contained in:
@ -107,7 +107,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mView.week_events_columns_holder.removeAllViews()
|
mView.week_events_columns_holder.removeAllViews()
|
||||||
(0..context!!.config.weeklyViewDays).forEach {
|
(0 until context!!.config.weeklyViewDays).forEach {
|
||||||
val column = inflater.inflate(R.layout.weekly_view_day_column, mView.week_events_columns_holder, false) as RelativeLayout
|
val column = inflater.inflate(R.layout.weekly_view_day_column, mView.week_events_columns_holder, false) as RelativeLayout
|
||||||
mView.week_events_columns_holder.addView(column)
|
mView.week_events_columns_holder.addView(column)
|
||||||
dayColumns.add(column)
|
dayColumns.add(column)
|
||||||
@ -178,10 +178,20 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun updateVisibleDaysCount(count: Int) {
|
fun updateVisibleDaysCount(count: Int) {
|
||||||
|
mView.week_events_columns_holder.removeAllViews()
|
||||||
|
dayColumns.clear()
|
||||||
|
(0 until context!!.config.weeklyViewDays).forEach {
|
||||||
|
val column = inflater.inflate(R.layout.weekly_view_day_column, mView.week_events_columns_holder, false) as RelativeLayout
|
||||||
|
mView.week_events_columns_holder.addView(column)
|
||||||
|
dayColumns.add(column)
|
||||||
|
}
|
||||||
|
|
||||||
mView.week_horizontal_grid_holder.apply {
|
mView.week_horizontal_grid_holder.apply {
|
||||||
daysCount = count
|
daysCount = count
|
||||||
invalidate()
|
invalidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addEvents(currEvents)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupDayLabels() {
|
private fun setupDayLabels() {
|
||||||
@ -211,7 +221,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initGrid() {
|
private fun initGrid() {
|
||||||
(0..context!!.config.weeklyViewDays).map { dayColumns[it] }
|
(0 until context!!.config.weeklyViewDays).map { dayColumns[it] }
|
||||||
.forEachIndexed { index, layout ->
|
.forEachIndexed { index, layout ->
|
||||||
layout.removeAllViews()
|
layout.removeAllViews()
|
||||||
val gestureDetector = getViewGestureDetector(layout, index)
|
val gestureDetector = getViewGestureDetector(layout, index)
|
||||||
@ -338,7 +348,6 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
eventTimeRanges.clear()
|
eventTimeRanges.clear()
|
||||||
allDayRows.add(HashSet())
|
allDayRows.add(HashSet())
|
||||||
week_all_day_holder?.removeAllViews()
|
week_all_day_holder?.removeAllViews()
|
||||||
|
|
||||||
addNewLine()
|
addNewLine()
|
||||||
|
|
||||||
val minuteHeight = rowHeight / 60
|
val minuteHeight = rowHeight / 60
|
||||||
@ -373,6 +382,10 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
addAllDayEvent(event)
|
addAllDayEvent(event)
|
||||||
} else {
|
} else {
|
||||||
val dayOfWeek = startDateTime.plusDays(if (config.isSundayFirst) 1 else 0).dayOfWeek - 1
|
val dayOfWeek = startDateTime.plusDays(if (config.isSundayFirst) 1 else 0).dayOfWeek - 1
|
||||||
|
if (dayOfWeek >= context!!.config.weeklyViewDays) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
val layout = dayColumns[dayOfWeek]
|
val layout = dayColumns[dayOfWeek]
|
||||||
|
|
||||||
val startMinutes = startDateTime.minuteOfDay
|
val startMinutes = startDateTime.minuteOfDay
|
||||||
@ -462,21 +475,28 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
private fun addCurrentTimeIndicator(minuteHeight: Float) {
|
private fun addCurrentTimeIndicator(minuteHeight: Float) {
|
||||||
if (todayColumnIndex != -1) {
|
if (todayColumnIndex != -1) {
|
||||||
val minutes = DateTime().minuteOfDay
|
val minutes = DateTime().minuteOfDay
|
||||||
val todayColumn = dayColumns[todayColumnIndex]
|
val todayColumn = dayColumns.getOrNull(todayColumnIndex) ?: return
|
||||||
if (currentTimeView != null) {
|
if (currentTimeView != null) {
|
||||||
mView.week_events_holder.removeView(currentTimeView)
|
mView.week_events_holder.removeView(currentTimeView)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val weeklyViewDays = context!!.config.weeklyViewDays
|
||||||
currentTimeView = (inflater.inflate(R.layout.week_now_marker, null, false) as ImageView).apply {
|
currentTimeView = (inflater.inflate(R.layout.week_now_marker, null, false) as ImageView).apply {
|
||||||
applyColorFilter(primaryColor)
|
applyColorFilter(primaryColor)
|
||||||
mView.week_events_holder.addView(this, 0)
|
mView.week_events_holder.addView(this, 0)
|
||||||
val extraWidth = (todayColumn.width * 0.3).toInt()
|
val extraWidth = res.getDimension(R.dimen.activity_margin).toInt()
|
||||||
val markerHeight = res.getDimension(R.dimen.weekly_view_now_height).toInt()
|
val markerHeight = res.getDimension(R.dimen.weekly_view_now_height).toInt()
|
||||||
(layoutParams as RelativeLayout.LayoutParams).apply {
|
(layoutParams as RelativeLayout.LayoutParams).apply {
|
||||||
width = todayColumn.width + extraWidth
|
width = (mView.width / weeklyViewDays) + extraWidth
|
||||||
height = markerHeight
|
height = markerHeight
|
||||||
}
|
}
|
||||||
x = todayColumn.x - extraWidth / 2
|
|
||||||
|
x = if (weeklyViewDays == 1) {
|
||||||
|
0f
|
||||||
|
} else {
|
||||||
|
todayColumn.x - extraWidth / 2
|
||||||
|
}
|
||||||
|
|
||||||
y = minutes * minuteHeight - markerHeight / 2
|
y = minutes * minuteHeight - markerHeight / 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ import org.joda.time.DateTime
|
|||||||
|
|
||||||
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||||
private val PREFILLED_WEEKS = 151
|
private val PREFILLED_WEEKS = 151
|
||||||
private val MIN_SEEKBAR_VALUE = 1
|
|
||||||
private val MAX_SEEKBAR_VALUE = 14
|
private val MAX_SEEKBAR_VALUE = 14
|
||||||
|
|
||||||
private var viewPager: MyViewPager? = null
|
private var viewPager: MyViewPager? = null
|
||||||
|
Reference in New Issue
Block a user