diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index 44a7e245d..1a14f01d1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -1386,7 +1386,19 @@ class EventActivity : SimpleActivity() { } EDIT_ALL_OCCURRENCES -> { ensureBackgroundThread { - eventsHelper.addEventRepeatLimit(mEvent.id!!, mEventOccurrenceTS) + // Shift the start and end times of the first (original) event based on the changes made + val originalEvent = eventsDB.getEventWithId(mEvent.id!!) ?: return@ensureBackgroundThread + val originalStartTS = originalEvent.startTS + val originalEndTS = originalEvent.endTS + val oldStartTS = mOriginalStartTS + val oldEndTS = mOriginalEndTS + + mEvent.apply { + val startTSDelta = oldStartTS - startTS + val endTSDelta = oldEndTS - endTS + startTS = originalStartTS - startTSDelta + endTS = originalEndTS - endTSDelta + } eventsHelper.updateEvent(mEvent, updateAtCalDAV = true, showToasts = true) { finish() } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index 9dc569daf..8479b7bf6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -502,7 +502,16 @@ class TaskActivity : SimpleActivity() { } EDIT_ALL_OCCURRENCES -> { ensureBackgroundThread { - eventsHelper.addEventRepeatLimit(mTask.id!!, mTaskOccurrenceTS) + // Shift the start and end times of the first (original) event based on the changes made + val originalEvent = eventsDB.getTaskWithId(mTask.id!!) ?: return@ensureBackgroundThread + val originalStartTS = originalEvent.startTS + val oldStartTS = mOriginalStartTS + + mTask.apply { + val startTSDelta = oldStartTS - startTS + startTS = originalStartTS - startTSDelta + endTS = startTS + } eventsHelper.updateEvent(mTask, updateAtCalDAV = false, showToasts = true) { finish() }