mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-09 08:28:39 +01:00
use proper start and end date at all-day events
This commit is contained in:
parent
62a0f5af2a
commit
4b530dd9c0
@ -509,8 +509,15 @@ class EventActivity : SimpleActivity(), DBHelper.EventUpdateListener {
|
||||
com.google.api.services.calendar.model.Event().apply {
|
||||
summary = mEvent.title
|
||||
description = mEvent.description
|
||||
start = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.startTS * 1000L))
|
||||
end = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.endTS * 1000L))
|
||||
|
||||
if (mEvent.getIsAllDay()) {
|
||||
start = EventDateTime().setDate(com.google.api.client.util.DateTime(true, mEvent.startTS * 1000L, null))
|
||||
end = EventDateTime().setDate(com.google.api.client.util.DateTime(true, (mEvent.endTS + DAY) * 1000L, null))
|
||||
} else {
|
||||
start = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.startTS * 1000L))
|
||||
end = EventDateTime().setDateTime(com.google.api.client.util.DateTime(mEvent.endTS * 1000L))
|
||||
}
|
||||
|
||||
status = CONFIRMED.toLowerCase()
|
||||
recurrence = listOf(Parser().getShortRepeatInterval(mEvent))
|
||||
reminders = getEventReminders()
|
||||
|
@ -119,7 +119,7 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List<Event>, va
|
||||
itemView.apply {
|
||||
event_item_title.text = event.title
|
||||
event_item_description.text = event.description
|
||||
event_item_start.text = if (event.isAllDay) allDayString else Formatter.getTimeFromTS(context, event.startTS)
|
||||
event_item_start.text = if (event.getIsAllDay()) allDayString else Formatter.getTimeFromTS(context, event.startTS)
|
||||
event_item_end.beInvisibleIf(event.startTS == event.endTS)
|
||||
toggleItemSelection(this, markedItems.contains(pos), pos)
|
||||
|
||||
@ -130,12 +130,12 @@ class DayEventsAdapter(val activity: SimpleActivity, val mItems: List<Event>, va
|
||||
event_item_end.apply {
|
||||
text = Formatter.getTimeFromTS(context, event.endTS)
|
||||
if (startCode != endCode) {
|
||||
if (event.isAllDay) {
|
||||
if (event.getIsAllDay()) {
|
||||
text = Formatter.getDateFromCode(context, endCode, true)
|
||||
} else {
|
||||
append(" (${Formatter.getDateFromCode(context, endCode, true)})")
|
||||
}
|
||||
} else if (event.isAllDay) {
|
||||
} else if (event.getIsAllDay()) {
|
||||
beInvisible()
|
||||
}
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ class EventListWidgetAdapter(val context: Context, val intent: Intent) : RemoteV
|
||||
listItems.add(ListSection(day))
|
||||
prevCode = code
|
||||
}
|
||||
listItems.add(ListEvent(it.id, it.startTS, it.endTS, it.title, it.description, it.isAllDay))
|
||||
listItems.add(ListEvent(it.id, it.startTS, it.endTS, it.title, it.description, it.getIsAllDay()))
|
||||
}
|
||||
|
||||
this@EventListWidgetAdapter.events = listItems
|
||||
|
@ -123,7 +123,7 @@ class FetchGoogleEventsTask(val activity: Activity, val googleSyncListener: Goog
|
||||
reminders.getOrElse(1, { -1 }), reminders.getOrElse(2, { -1 }), repeatRule.repeatInterval, importId, flags, repeatRule.repeatLimit,
|
||||
repeatRule.repeatRule, eventTypeId, lastUpdated = lastUpdate, source = SOURCE_GOOGLE_SYNC)
|
||||
|
||||
if (event.isAllDay && endTS > startTS) {
|
||||
if (event.getIsAllDay() && endTS > startTS) {
|
||||
event.endTS -= DAY
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ fun Context.notifyEvent(event: Event) {
|
||||
val pendingIntent = getPendingIntent(this, event)
|
||||
val startTime = Formatter.getTimeFromTS(this, event.startTS)
|
||||
val endTime = Formatter.getTimeFromTS(this, event.endTS)
|
||||
val timeRange = if (event.isAllDay) getString(R.string.all_day) else getFormattedEventTime(startTime, endTime)
|
||||
val timeRange = if (event.getIsAllDay()) getString(R.string.all_day) else getFormattedEventTime(startTime, endTime)
|
||||
val notification = getNotification(this, pendingIntent, event, "$timeRange ${event.description}")
|
||||
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
notificationManager.notify(event.id, notification)
|
||||
|
@ -80,7 +80,7 @@ class EventListFragment : Fragment(), DBHelper.EventUpdateListener, DeleteEvents
|
||||
listItems.add(ListSection(day))
|
||||
prevCode = code
|
||||
}
|
||||
listItems.add(ListEvent(it.id, it.startTS, it.endTS, it.title, it.description, it.isAllDay))
|
||||
listItems.add(ListEvent(it.id, it.startTS, it.endTS, it.title, it.description, it.getIsAllDay()))
|
||||
}
|
||||
|
||||
val eventsAdapter = EventListAdapter(activity as SimpleActivity, listItems, this) {
|
||||
|
@ -246,7 +246,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
||||
var hadAllDayEvent = false
|
||||
val sorted = filtered.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { it.description }))
|
||||
for (event in sorted) {
|
||||
if (event.isAllDay || Formatter.getDayCodeFromTS(event.startTS) != Formatter.getDayCodeFromTS(event.endTS)) {
|
||||
if (event.getIsAllDay() || Formatter.getDayCodeFromTS(event.startTS) != Formatter.getDayCodeFromTS(event.endTS)) {
|
||||
hadAllDayEvent = true
|
||||
addAllDayEvent(event)
|
||||
} else {
|
||||
|
@ -543,7 +543,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
}
|
||||
}
|
||||
|
||||
if (event.isAllDay) {
|
||||
if (event.getIsAllDay()) {
|
||||
if (event.repeatInterval.isXWeeklyRepetition()) {
|
||||
if (event.startTS.isTsOnProperDay(event)) {
|
||||
if (isOnProperWeek(event, startTimes)) {
|
||||
@ -579,7 +579,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
||||
} else {
|
||||
if (event.endTS >= fromTS) {
|
||||
events.add(event.copy())
|
||||
} else if (event.isAllDay) {
|
||||
} else if (event.getIsAllDay()) {
|
||||
val dayCode = Formatter.getDayCodeFromTS(fromTS)
|
||||
val endDayCode = Formatter.getDayCodeFromTS(event.endTS)
|
||||
if (dayCode == endDayCode) {
|
||||
|
@ -29,7 +29,7 @@ class IcsExporter {
|
||||
event.eventType.let { out.writeLn("$CATEGORIES${activity.dbHelper.getEventType(it)?.title}") }
|
||||
event.lastUpdated.let { out.writeLn("$LAST_MODIFIED:${Formatter.getExportedTime(it)}") }
|
||||
|
||||
if (event.isAllDay) {
|
||||
if (event.getIsAllDay()) {
|
||||
out.writeLn("$DTSTART;$VALUE=$DATE:${Formatter.getDayCodeFromTS(event.startTS)}")
|
||||
out.writeLn("$DTEND;$VALUE=$DATE:${Formatter.getDayCodeFromTS(event.endTS + DAY)}")
|
||||
} else {
|
||||
|
@ -101,7 +101,7 @@ class IcsImporter {
|
||||
curImportId, curFlags, curRepeatLimit, curRepeatRule, curEventType, lastUpdated = curLastModified,
|
||||
source = SOURCE_IMPORTED_ICS)
|
||||
|
||||
if (event.isAllDay && curEnd > curStart) {
|
||||
if (event.getIsAllDay() && curEnd > curStart) {
|
||||
event.endTS -= DAY
|
||||
}
|
||||
|
||||
|
@ -92,13 +92,13 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var
|
||||
return addedProperOrder
|
||||
}
|
||||
|
||||
val isAllDay = flags and FLAG_ALL_DAY != 0
|
||||
fun getIsAllDay() = flags and FLAG_ALL_DAY != 0
|
||||
|
||||
fun getReminders() = setOf(reminder1Minutes, reminder2Minutes, reminder3Minutes).filter { it != REMINDER_OFF }
|
||||
|
||||
// properly return the start time of all-day events as midnight
|
||||
fun getEventStartTS(): Int {
|
||||
return if (isAllDay) {
|
||||
return if (getIsAllDay()) {
|
||||
Formatter.getDateTimeFromTS(startTS).withTime(0, 0, 0, 0).seconds()
|
||||
} else {
|
||||
startTS
|
||||
|
Loading…
x
Reference in New Issue
Block a user