diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Range.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Range.kt index 8638fd446..ae635c752 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Range.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Range.kt @@ -2,4 +2,4 @@ package com.simplemobiletools.calendar.pro.extensions import android.util.Range -fun Range.touch(other: Range) = (upper > other.lower && lower < other.upper) || (other.upper > lower && other.lower < upper) +fun Range.touch(other: Range) = (upper >= other.lower && lower <= other.upper) || (other.upper >= lower && other.lower <= upper) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt index 6a445584a..290658b38 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt @@ -12,7 +12,6 @@ import android.util.Range import android.view.* import android.widget.ImageView import android.widget.RelativeLayout -import android.widget.TextView import androidx.collection.LongSparseArray import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.Fragment @@ -489,7 +488,15 @@ class WeekFragment : Fragment(), WeeklyCalendar { eventsCollisionChecked.add(eventId) val eventWeeklyViewsToCheck = eventDayList.filter { !eventsCollisionChecked.contains(it.key) } eventWeeklyViewsToCheck.forEach { toCheckId, eventWeeklyViewToCheck -> - if (eventWeeklyView.range.touch(eventWeeklyViewToCheck.range)) { + val areTouching = eventWeeklyView.range.touch(eventWeeklyViewToCheck.range) + val doHaveCommonMinutes = if (areTouching) { + eventWeeklyView.range.upper > eventWeeklyViewToCheck.range.lower || (eventWeeklyView.range.lower == eventWeeklyView.range.upper && + eventWeeklyView.range.upper == eventWeeklyViewToCheck.range.lower) + } else { + false + } + + if (areTouching && doHaveCommonMinutes) { if (eventWeeklyViewToCheck.slot == 0) { val nextSlot = eventWeeklyView.slot_max + 1 val slotRange = Array(eventWeeklyView.slot_max) { it + 1 }