mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
adding new Event fields for reminder type and attendees
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.room.Database
|
|||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
import androidx.room.RoomDatabase
|
import androidx.room.RoomDatabase
|
||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
|
import androidx.room.migration.Migration
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.extensions.config
|
import com.simplemobiletools.calendar.pro.extensions.config
|
||||||
@@ -16,7 +17,7 @@ import com.simplemobiletools.calendar.pro.models.Event
|
|||||||
import com.simplemobiletools.calendar.pro.models.EventType
|
import com.simplemobiletools.calendar.pro.models.EventType
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
@Database(entities = [Event::class, EventType::class], version = 1)
|
@Database(entities = [Event::class, EventType::class], version = 2)
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class EventsDatabase : RoomDatabase() {
|
abstract class EventsDatabase : RoomDatabase() {
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ abstract class EventsDatabase : RoomDatabase() {
|
|||||||
insertRegularEventType(context)
|
insertRegularEventType(context)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.addMigrations(MIGRATION_1_2)
|
||||||
.build()
|
.build()
|
||||||
db!!.openHelper.setWriteAheadLoggingEnabled(true)
|
db!!.openHelper.setWriteAheadLoggingEnabled(true)
|
||||||
}
|
}
|
||||||
@@ -58,5 +60,16 @@ abstract class EventsDatabase : RoomDatabase() {
|
|||||||
context.config.addDisplayEventType(REGULAR_EVENT_TYPE_ID.toString())
|
context.config.addDisplayEventType(REGULAR_EVENT_TYPE_ID.toString())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val MIGRATION_1_2 = object : Migration(1, 2) {
|
||||||
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
|
database.apply {
|
||||||
|
execSQL("ALTER TABLE events ADD COLUMN reminder_1_type INTEGER NOT NULL DEFAULT 0")
|
||||||
|
execSQL("ALTER TABLE events ADD COLUMN reminder_2_type INTEGER NOT NULL DEFAULT 0")
|
||||||
|
execSQL("ALTER TABLE events ADD COLUMN reminder_3_type INTEGER NOT NULL DEFAULT 0")
|
||||||
|
execSQL("ALTER TABLE events ADD COLUMN attendees TEXT NOT NULL DEFAULT '[]'")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -215,8 +215,8 @@ class CalDAVHelper(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, repeatRule.repeatRule,
|
reminders.getOrElse(1) { -1 }, reminders.getOrElse(2) { -1 }, 0, 0, 0, repeatRule.repeatInterval, repeatRule.repeatRule,
|
||||||
repeatRule.repeatLimit, ArrayList(), importId, allDay, eventTypeId, source = source)
|
repeatRule.repeatLimit, ArrayList(), ArrayList(), importId, allDay, eventTypeId, source = source)
|
||||||
|
|
||||||
if (event.getIsAllDay()) {
|
if (event.getIsAllDay()) {
|
||||||
event.startTS = Formatter.getShiftedImportTimestamp(event.startTS)
|
event.startTS = Formatter.getShiftedImportTimestamp(event.startTS)
|
||||||
|
@@ -151,4 +151,7 @@ const val DELETE_SELECTED_OCCURRENCE = 0
|
|||||||
const val DELETE_FUTURE_OCCURRENCES = 1
|
const val DELETE_FUTURE_OCCURRENCES = 1
|
||||||
const val DELETE_ALL_OCCURRENCES = 2
|
const val DELETE_ALL_OCCURRENCES = 2
|
||||||
|
|
||||||
|
const val REMINDER_NOTIFICATION = 0
|
||||||
|
const val REMINDER_EMAIL = 1
|
||||||
|
|
||||||
fun getNowSeconds() = System.currentTimeMillis() / 1000L
|
fun getNowSeconds() = System.currentTimeMillis() / 1000L
|
||||||
|
@@ -150,8 +150,8 @@ 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(null, curStart, curEnd, curTitle, curLocation, curDescription, curReminderMinutes.getOrElse(0) { -1 },
|
val event = Event(null, curStart, curEnd, curTitle, curLocation, curDescription, curReminderMinutes.getOrElse(0) { -1 },
|
||||||
curReminderMinutes.getOrElse(1) { -1 }, curReminderMinutes.getOrElse(2) { -1 }, curRepeatInterval, curRepeatRule,
|
curReminderMinutes.getOrElse(1) { -1 }, curReminderMinutes.getOrElse(2) { -1 }, 0, 0, 0, curRepeatInterval, curRepeatRule,
|
||||||
curRepeatLimit, curRepeatExceptions, curImportId, curFlags, curEventTypeId, 0, curLastModified, source)
|
curRepeatLimit, curRepeatExceptions, ArrayList(), curImportId, curFlags, curEventTypeId, 0, curLastModified, source)
|
||||||
|
|
||||||
if (event.getIsAllDay() && curEnd > curStart) {
|
if (event.getIsAllDay() && curEnd > curStart) {
|
||||||
event.endTS -= DAY
|
event.endTS -= DAY
|
||||||
|
@@ -22,10 +22,14 @@ data class Event(
|
|||||||
@ColumnInfo(name = "reminder_1_minutes") var reminder1Minutes: Int = -1,
|
@ColumnInfo(name = "reminder_1_minutes") var reminder1Minutes: Int = -1,
|
||||||
@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 = "reminder_1_type") var reminder1Type: Int = REMINDER_NOTIFICATION,
|
||||||
|
@ColumnInfo(name = "reminder_2_type") var reminder2Type: Int = REMINDER_NOTIFICATION,
|
||||||
|
@ColumnInfo(name = "reminder_3_type") var reminder3Type: Int = REMINDER_NOTIFICATION,
|
||||||
@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_rule") var repeatRule: Int = 0,
|
||||||
@ColumnInfo(name = "repeat_limit") var repeatLimit: Long = 0L,
|
@ColumnInfo(name = "repeat_limit") var repeatLimit: Long = 0L,
|
||||||
@ColumnInfo(name = "repetition_exceptions") var repetitionExceptions: ArrayList<String> = ArrayList(),
|
@ColumnInfo(name = "repetition_exceptions") var repetitionExceptions: ArrayList<String> = ArrayList(),
|
||||||
|
@ColumnInfo(name = "attendees") var attendees: ArrayList<String> = ArrayList(),
|
||||||
@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 = "event_type") var eventType: Long = REGULAR_EVENT_TYPE_ID,
|
@ColumnInfo(name = "event_type") var eventType: Long = REGULAR_EVENT_TYPE_ID,
|
||||||
|
Reference in New Issue
Block a user