Skip to content

Commit daa6176

Browse files
committed
improving weekly view collision checking
1 parent 04b8fc8 commit daa6176

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Range.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ package com.simplemobiletools.calendar.pro.extensions
22

33
import android.util.Range
44

5-
fun Range<Int>.touch(other: Range<Int>) = (upper > other.lower && lower < other.upper) || (other.upper > lower && other.lower < upper)
5+
fun Range<Int>.touch(other: Range<Int>) = (upper >= other.lower && lower <= other.upper) || (other.upper >= lower && other.lower <= upper)

app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import android.util.Range
1212
import android.view.*
1313
import android.widget.ImageView
1414
import android.widget.RelativeLayout
15-
import android.widget.TextView
1615
import androidx.collection.LongSparseArray
1716
import androidx.constraintlayout.widget.ConstraintLayout
1817
import androidx.fragment.app.Fragment
@@ -489,7 +488,15 @@ class WeekFragment : Fragment(), WeeklyCalendar {
489488
eventsCollisionChecked.add(eventId)
490489
val eventWeeklyViewsToCheck = eventDayList.filter { !eventsCollisionChecked.contains(it.key) }
491490
eventWeeklyViewsToCheck.forEach { toCheckId, eventWeeklyViewToCheck ->
492-
if (eventWeeklyView.range.touch(eventWeeklyViewToCheck.range)) {
491+
val areTouching = eventWeeklyView.range.touch(eventWeeklyViewToCheck.range)
492+
val doHaveCommonMinutes = if (areTouching) {
493+
eventWeeklyView.range.upper > eventWeeklyViewToCheck.range.lower || (eventWeeklyView.range.lower == eventWeeklyView.range.upper &&
494+
eventWeeklyView.range.upper == eventWeeklyViewToCheck.range.lower)
495+
} else {
496+
false
497+
}
498+
499+
if (areTouching && doHaveCommonMinutes) {
493500
if (eventWeeklyViewToCheck.slot == 0) {
494501
val nextSlot = eventWeeklyView.slot_max + 1
495502
val slotRange = Array(eventWeeklyView.slot_max) { it + 1 }

0 commit comments

Comments
 (0)