Avoid shifting start, end times when switching calendars

This commit is contained in:
Naveen
2023-05-29 05:32:18 +05:30
parent 2d33c1f8f0
commit 75ffedca81

View File

@@ -1306,6 +1306,9 @@ class EventActivity : SimpleActivity() {
// recreate the event if it was moved in a different CalDAV calendar // recreate the event if it was moved in a different CalDAV calendar
if (mEvent.id != null && oldSource != newSource && oldSource != SOURCE_IMPORTED_ICS) { if (mEvent.id != null && oldSource != newSource && oldSource != SOURCE_IMPORTED_ICS) {
if (mRepeatInterval > 0 && wasRepeatable) {
applyOriginalStartEndTimes()
}
eventsHelper.deleteEvent(mEvent.id!!, true) eventsHelper.deleteEvent(mEvent.id!!, true)
mEvent.id = null mEvent.id = null
} }
@@ -1386,19 +1389,7 @@ class EventActivity : SimpleActivity() {
} }
EDIT_ALL_OCCURRENCES -> { EDIT_ALL_OCCURRENCES -> {
ensureBackgroundThread { ensureBackgroundThread {
// Shift the start and end times of the first (original) event based on the changes made applyOriginalStartEndTimes()
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) { eventsHelper.updateEvent(mEvent, updateAtCalDAV = true, showToasts = true) {
finish() finish()
} }
@@ -1408,6 +1399,22 @@ class EventActivity : SimpleActivity() {
} }
} }
private fun applyOriginalStartEndTimes() {
// Shift the start and end times of the first (original) event based on the changes made
val originalEvent = eventsDB.getEventWithId(mEvent.id!!) ?: return
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
}
}
private fun updateStartTexts() { private fun updateStartTexts() {
updateStartDateText() updateStartDateText()
updateStartTimeText() updateStartTimeText()