mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
make sure imported events have an ImportId + flipping some arguments
This commit is contained in:
@@ -202,8 +202,8 @@ class CalDAVHandler(val context: Context) {
|
|||||||
val source = "$CALDAV-$calendarId"
|
val source = "$CALDAV-$calendarId"
|
||||||
val repeatRule = Parser().parseRepeatInterval(rrule, startTS)
|
val repeatRule = Parser().parseRepeatInterval(rrule, startTS)
|
||||||
val event = Event(null, startTS, endTS, title, location, description, reminders.getOrElse(0) { -1 },
|
val event = Event(null, startTS, endTS, title, location, description, reminders.getOrElse(0) { -1 },
|
||||||
reminders.getOrElse(1) { -1 }, reminders.getOrElse(2) { -1 }, repeatRule.repeatInterval,
|
reminders.getOrElse(1) { -1 }, reminders.getOrElse(2) { -1 }, repeatRule.repeatInterval, repeatRule.repeatRule,
|
||||||
importId, allDay, repeatRule.repeatLimit, repeatRule.repeatRule, eventTypeId, source = source)
|
repeatRule.repeatLimit, importId, allDay, eventTypeId, source = source)
|
||||||
|
|
||||||
if (event.getIsAllDay()) {
|
if (event.getIsAllDay()) {
|
||||||
event.startTS = Formatter.getShiftedImportTimestamp(event.startTS)
|
event.startTS = Formatter.getShiftedImportTimestamp(event.startTS)
|
||||||
|
@@ -854,12 +854,12 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
val reminder3Minutes = cursor.getIntValue(COL_REMINDER_MINUTES_3)
|
val reminder3Minutes = cursor.getIntValue(COL_REMINDER_MINUTES_3)
|
||||||
val repeatInterval = cursor.getIntValue(COL_REPEAT_INTERVAL)
|
val repeatInterval = cursor.getIntValue(COL_REPEAT_INTERVAL)
|
||||||
var repeatRule = cursor.getIntValue(COL_REPEAT_RULE)
|
var repeatRule = cursor.getIntValue(COL_REPEAT_RULE)
|
||||||
|
val repeatLimit = cursor.getIntValue(COL_REPEAT_LIMIT)
|
||||||
val title = cursor.getStringValue(COL_TITLE)
|
val title = cursor.getStringValue(COL_TITLE)
|
||||||
val location = cursor.getStringValue(COL_LOCATION)
|
val location = cursor.getStringValue(COL_LOCATION)
|
||||||
val description = cursor.getStringValue(COL_DESCRIPTION)
|
val description = cursor.getStringValue(COL_DESCRIPTION)
|
||||||
val importId = cursor.getStringValue(COL_IMPORT_ID) ?: ""
|
val importId = cursor.getStringValue(COL_IMPORT_ID) ?: ""
|
||||||
val flags = cursor.getIntValue(COL_FLAGS)
|
val flags = cursor.getIntValue(COL_FLAGS)
|
||||||
val repeatLimit = cursor.getIntValue(COL_REPEAT_LIMIT)
|
|
||||||
val eventType = cursor.getLongValue(COL_EVENT_TYPE)
|
val eventType = cursor.getLongValue(COL_EVENT_TYPE)
|
||||||
val lastUpdated = cursor.getLongValue(COL_LAST_UPDATED)
|
val lastUpdated = cursor.getLongValue(COL_LAST_UPDATED)
|
||||||
val source = cursor.getStringValue(COL_EVENT_SOURCE)
|
val source = cursor.getStringValue(COL_EVENT_SOURCE)
|
||||||
@@ -869,7 +869,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
}
|
}
|
||||||
|
|
||||||
val event = Event(id, startTS, endTS, title, location, description, reminder1Minutes, reminder2Minutes, reminder3Minutes,
|
val event = Event(id, startTS, endTS, title, location, description, reminder1Minutes, reminder2Minutes, reminder3Minutes,
|
||||||
repeatInterval, importId, flags, repeatLimit, repeatRule, eventType, 0, lastUpdated, source)
|
repeatInterval, repeatRule, repeatLimit, importId, flags, eventType, 0, lastUpdated, source)
|
||||||
event.updateIsPastEvent()
|
event.updateIsPastEvent()
|
||||||
event.color = eventTypeColors.get(eventType)!!
|
event.color = eventTypeColors.get(eventType)!!
|
||||||
|
|
||||||
|
@@ -141,13 +141,20 @@ class IcsImporter(val activity: SimpleActivity) {
|
|||||||
val eventType = eventTypes.firstOrNull { it.id == curEventTypeId }
|
val eventType = eventTypes.firstOrNull { it.id == curEventTypeId }
|
||||||
val source = if (calDAVCalendarId == 0 || eventType?.isSyncedEventType() == false) SOURCE_IMPORTED_ICS else "$CALDAV-$calDAVCalendarId"
|
val source = if (calDAVCalendarId == 0 || eventType?.isSyncedEventType() == false) SOURCE_IMPORTED_ICS else "$CALDAV-$calDAVCalendarId"
|
||||||
val event = Event(0, curStart, curEnd, curTitle, curLocation, curDescription, curReminderMinutes.getOrElse(0) { -1 },
|
val event = Event(0, curStart, curEnd, curTitle, curLocation, curDescription, curReminderMinutes.getOrElse(0) { -1 },
|
||||||
curReminderMinutes.getOrElse(1) { -1 }, curReminderMinutes.getOrElse(2) { -1 }, curRepeatInterval,
|
curReminderMinutes.getOrElse(1) { -1 }, curReminderMinutes.getOrElse(2) { -1 }, curRepeatInterval, curRepeatRule,
|
||||||
curImportId, curFlags, curRepeatLimit, curRepeatRule, curEventTypeId, 0, curLastModified, source)
|
curRepeatLimit, curImportId, curFlags, curEventTypeId, 0, curLastModified, source)
|
||||||
|
|
||||||
if (event.getIsAllDay() && curEnd > curStart) {
|
if (event.getIsAllDay() && curEnd > curStart) {
|
||||||
event.endTS -= DAY
|
event.endTS -= DAY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.importId.isEmpty()) {
|
||||||
|
event.importId = event.hashCode().toString()
|
||||||
|
if (existingEvents.map { it.importId }.contains(event.importId)) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (eventToUpdate == null) {
|
if (eventToUpdate == null) {
|
||||||
if (curRepeatExceptions.isEmpty()) {
|
if (curRepeatExceptions.isEmpty()) {
|
||||||
eventsToInsert.add(event)
|
eventsToInsert.add(event)
|
||||||
|
@@ -23,10 +23,10 @@ data class Event(
|
|||||||
@ColumnInfo(name = "reminder_2_minutes") var reminder2Minutes: Int = -1,
|
@ColumnInfo(name = "reminder_2_minutes") var reminder2Minutes: Int = -1,
|
||||||
@ColumnInfo(name = "reminder_3_minutes") var reminder3Minutes: Int = -1,
|
@ColumnInfo(name = "reminder_3_minutes") var reminder3Minutes: Int = -1,
|
||||||
@ColumnInfo(name = "repeat_interval") var repeatInterval: Int = 0,
|
@ColumnInfo(name = "repeat_interval") var repeatInterval: Int = 0,
|
||||||
|
@ColumnInfo(name = "repeat_rule") var repeatRule: Int = 0,
|
||||||
|
@ColumnInfo(name = "repeat_limit") var repeatLimit: Int = 0,
|
||||||
@ColumnInfo(name = "import_id") var importId: String = "",
|
@ColumnInfo(name = "import_id") var importId: String = "",
|
||||||
@ColumnInfo(name = "flags") var flags: Int = 0,
|
@ColumnInfo(name = "flags") var flags: Int = 0,
|
||||||
@ColumnInfo(name = "repeat_limit") var repeatLimit: Int = 0,
|
|
||||||
@ColumnInfo(name = "repeat_rule") var repeatRule: Int = 0,
|
|
||||||
@ColumnInfo(name = "event_type") var eventType: Long = DBHelper.REGULAR_EVENT_TYPE_ID,
|
@ColumnInfo(name = "event_type") var eventType: Long = DBHelper.REGULAR_EVENT_TYPE_ID,
|
||||||
@ColumnInfo(name = "parent_id") var parentId: Long = 0,
|
@ColumnInfo(name = "parent_id") var parentId: Long = 0,
|
||||||
@ColumnInfo(name = "last_updated") var lastUpdated: Long = 0L,
|
@ColumnInfo(name = "last_updated") var lastUpdated: Long = 0L,
|
||||||
|
Reference in New Issue
Block a user