From 4709322eae88dead4356d177a1dc0d34e167cd70 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 2 Apr 2017 20:21:22 +0200 Subject: [PATCH] fix #109, show a notification if the device is turned on during an event --- .../com/simplemobiletools/calendar/extensions/Context.kt | 6 ++++++ .../com/simplemobiletools/calendar/helpers/DBHelper.kt | 8 ++++++++ .../calendar/receivers/BootCompletedReceiver.kt | 2 ++ 3 files changed, 16 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt index e9b4dc00a..b583bbd71 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/extensions/Context.kt @@ -152,6 +152,12 @@ fun Context.getFilteredEvents(events: List): List { return events.filter { displayEventTypes.contains(it.eventType.toString()) } } +fun Context.notifyRunningEvents() { + dbHelper.getRunningEvents { + it.forEach { notifyEvent(it) } + } +} + fun Context.notifyEvent(event: Event) { val pendingIntent = getPendingIntent(this, event) val startTime = Formatter.getTimeFromTS(this, event.startTS) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt index 49e355728..56656e66f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt @@ -390,6 +390,14 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont return newEvents } + fun getRunningEvents(callback: (events: ArrayList) -> Unit) { + val selection = "$COL_START_TS <= ? AND $COL_END_TS >= ?" + val ts = (System.currentTimeMillis() / 1000).toString() + val selectionArgs = arrayOf(ts, ts) + val cursor = getEventsCursor(selection, selectionArgs) + callback(fillEvents(cursor) as ArrayList) + } + private fun getEvents(selection: String): List { val events = ArrayList() var cursor: Cursor? = null diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt index f27744298..093743a2e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/receivers/BootCompletedReceiver.kt @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import com.simplemobiletools.calendar.extensions.dbHelper +import com.simplemobiletools.calendar.extensions.notifyRunningEvents import com.simplemobiletools.calendar.extensions.scheduleNextEventReminder class BootCompletedReceiver : BroadcastReceiver() { @@ -13,5 +14,6 @@ class BootCompletedReceiver : BroadcastReceiver() { for (event in events) { context.scheduleNextEventReminder(event) } + context.notifyRunningEvents() } }