From b97cbf6ce9ccdac2525dc7232a867a75adc6e3df Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 16 Nov 2018 14:34:44 +0100 Subject: [PATCH] adding a Room function for getting relevant events at reboot --- .../calendar/pro/extensions/Context.kt | 2 +- .../calendar/pro/helpers/DBHelper.kt | 14 ++++---------- .../calendar/pro/interfaces/EventsDao.kt | 4 ++++ 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index eed93940a..d49f672dc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -78,7 +78,7 @@ fun Context.updateListWidget() { } fun Context.scheduleAllEvents() { - val events = dbHelper.getEventsAtReboot() + val events = eventsDB.getEventsAtReboot(DateTime.now().seconds()) events.forEach { scheduleNextEventReminder(it) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt index 69cbce3c0..c05f38597 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt @@ -6,12 +6,14 @@ import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import android.text.TextUtils import androidx.collection.LongSparseArray -import com.simplemobiletools.calendar.pro.extensions.* +import com.simplemobiletools.calendar.pro.extensions.config +import com.simplemobiletools.calendar.pro.extensions.eventTypesDB +import com.simplemobiletools.calendar.pro.extensions.isTsOnProperDay +import com.simplemobiletools.calendar.pro.extensions.isXWeeklyRepetition import com.simplemobiletools.calendar.pro.models.Event import com.simplemobiletools.commons.extensions.getIntValue import com.simplemobiletools.commons.extensions.getLongValue import com.simplemobiletools.commons.extensions.getStringValue -import org.joda.time.DateTime class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) { private val MAIN_TABLE_NAME = "events" @@ -209,14 +211,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont return events } - fun getEventsAtReboot(): List { - //val selection = "$COL_REMINDER_MINUTES != -1 AND ($COL_START_TS > ? OR $COL_REPEAT_INTERVAL != 0) AND $COL_START_TS != 0" - val selection = "$COL_REMINDER_MINUTES != -1 AND ($COL_START_TS > ?) AND $COL_START_TS != 0" - val selectionArgs = arrayOf(DateTime.now().seconds().toString()) - val cursor = getEventsCursor(selection, selectionArgs) - return fillEvents(cursor) - } - fun getEventsToExport(includePast: Boolean): ArrayList { val currTime = getNowSeconds().toString() var events = ArrayList() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt index a14d63736..c6e26a42d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt @@ -47,6 +47,10 @@ interface EventsDao { @Query("SELECT * FROM events WHERE id IN (:ids)") fun getEventsWithIds(ids: List): List + //val selection = "$COL_REMINDER_MINUTES != -1 AND ($COL_START_TS > ? OR $COL_REPEAT_INTERVAL != 0) AND $COL_START_TS != 0" + @Query("SELECT * FROM events WHERE reminder_1_minutes != -1 AND (start_ts > :currentTS OR repeat_interval != 0) AND start_ts != 0") + fun getEventsAtReboot(currentTS: Long): List + @Query("SELECT id FROM events") fun getEventIds(): List