mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
maintain event's duration, only adjust start hour on drag and drop
This commit is contained in:
@@ -276,24 +276,23 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
DragEvent.ACTION_DRAG_ENTERED,
|
DragEvent.ACTION_DRAG_ENTERED,
|
||||||
DragEvent.ACTION_DRAG_EXITED,
|
DragEvent.ACTION_DRAG_EXITED,
|
||||||
DragEvent.ACTION_DRAG_LOCATION,
|
DragEvent.ACTION_DRAG_LOCATION,
|
||||||
DragEvent.ACTION_DRAG_EXITED,
|
|
||||||
DragEvent.ACTION_DRAG_ENDED -> true
|
DragEvent.ACTION_DRAG_ENDED -> true
|
||||||
DragEvent.ACTION_DROP -> {
|
DragEvent.ACTION_DROP -> {
|
||||||
try {
|
try {
|
||||||
val eventId = dragEvent.clipData.getItemAt(0).text.toString().toLong()
|
val eventId = dragEvent.clipData.getItemAt(0).text.toString().toLong()
|
||||||
val startHour = (dragEvent.y / rowHeight).toInt()
|
val startHour = (dragEvent.y / rowHeight).toInt()
|
||||||
val endHour = startHour + 1
|
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
val event = context?.eventsDB?.getEventWithId(eventId)
|
val event = context?.eventsDB?.getEventWithId(eventId)
|
||||||
event?.let {
|
event?.let {
|
||||||
val startTime = Formatter.getDateTimeFromTS(it.startTS)
|
val currentStartTime = Formatter.getDateTimeFromTS(it.startTS)
|
||||||
val endTime = Formatter.getDateTimeFromTS(it.endTS)
|
val startTime = Formatter.getDateTimeFromTS(weekTimestamp + index * DAY_SECONDS)
|
||||||
|
.withTime(startHour, currentStartTime.minuteOfHour, currentStartTime.secondOfMinute, currentStartTime.millisOfSecond).seconds()
|
||||||
|
val currentEventDuration = event.endTS - event.startTS
|
||||||
|
val endTime = startTime + currentEventDuration
|
||||||
context?.eventsHelper?.updateEvent(
|
context?.eventsHelper?.updateEvent(
|
||||||
it.copy(
|
it.copy(
|
||||||
startTS = Formatter.getDateTimeFromTS(weekTimestamp + index * DAY_SECONDS)
|
startTS = startTime,
|
||||||
.withTime(startHour, startTime.minuteOfHour, startTime.secondOfMinute, startTime.millisOfSecond).seconds(),
|
endTS = endTime,
|
||||||
endTS = Formatter.getDateTimeFromTS(weekTimestamp + index * DAY_SECONDS)
|
|
||||||
.withTime(endHour, endTime.minuteOfHour, endTime.secondOfMinute, endTime.millisOfSecond).seconds(),
|
|
||||||
flags = it.flags.removeBit(FLAG_ALL_DAY)
|
flags = it.flags.removeBit(FLAG_ALL_DAY)
|
||||||
), updateAtCalDAV = true, showToasts = false
|
), updateAtCalDAV = true, showToasts = false
|
||||||
) {
|
) {
|
||||||
@@ -305,7 +304,6 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||||||
} catch (ignored: Exception) {
|
} catch (ignored: Exception) {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user