use the Reminder model class at fetching event reminders

This commit is contained in:
tibbi 2019-03-12 11:55:11 +01:00
parent 1eb798e1ca
commit f8028e0c16
4 changed files with 12 additions and 6 deletions

View File

@ -879,7 +879,7 @@ class EventActivity : SimpleActivity() {
if (mEvent.id == null || mEvent.id == null) {
eventsHelper.insertEvent(mEvent, true, true) {
if (DateTime.now().isAfter(mEventStartDateTime.millis)) {
if (mEvent.repeatInterval == 0 && mEvent.getReminders().isNotEmpty()) {
if (mEvent.repeatInterval == 0 && mEvent.getReminders().any { it.type == REMINDER_NOTIFICATION }) {
notifyEvent(mEvent)
}
}

View File

@ -80,7 +80,8 @@ fun Context.scheduleAllEvents() {
}
fun Context.scheduleNextEventReminder(event: Event, showToasts: Boolean) {
if (event.getReminders().isEmpty()) {
val validReminders = event.getReminders().filter { it.type == REMINDER_NOTIFICATION }
if (validReminders.isEmpty()) {
if (showToasts) {
toast(R.string.saving)
}
@ -88,7 +89,7 @@ fun Context.scheduleNextEventReminder(event: Event, showToasts: Boolean) {
}
val now = getNowSeconds()
val reminderSeconds = event.getReminders().reversed().map { it * 60 }
val reminderSeconds = validReminders.reversed().map { it.minutes * 60 }
eventsHelper.getEvents(now, now + YEAR, event.id!!, false) {
if (it.isNotEmpty()) {
for (curEvent in it) {
@ -159,7 +160,7 @@ fun Context.getRepetitionText(seconds: Int) = when (seconds) {
}
fun Context.notifyRunningEvents() {
eventsHelper.getRunningEvents().filter { it.getReminders().isNotEmpty() }.forEach {
eventsHelper.getRunningEvents().filter { it.getReminders().any { it.type == REMINDER_NOTIFICATION } }.forEach {
notifyEvent(it)
}
}

View File

@ -120,7 +120,11 @@ data class Event(
fun getIsAllDay() = flags and FLAG_ALL_DAY != 0
fun getReminders() = setOf(reminder1Minutes, reminder2Minutes, reminder3Minutes).filter { it != REMINDER_OFF }
fun getReminders() = setOf(
Reminder(reminder1Minutes, reminder1Type),
Reminder(reminder2Minutes, reminder2Type),
Reminder(reminder3Minutes, reminder3Type)
).filter { it.minutes != REMINDER_OFF }
// properly return the start time of all-day events as midnight
fun getEventStartTS(): Long {

View File

@ -10,6 +10,7 @@ import com.simplemobiletools.calendar.pro.extensions.scheduleNextEventReminder
import com.simplemobiletools.calendar.pro.extensions.updateListWidget
import com.simplemobiletools.calendar.pro.helpers.EVENT_ID
import com.simplemobiletools.calendar.pro.helpers.Formatter
import com.simplemobiletools.calendar.pro.helpers.REMINDER_NOTIFICATION
class NotificationReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
@ -30,7 +31,7 @@ class NotificationReceiver : BroadcastReceiver() {
context.updateListWidget()
val event = context.eventsDB.getEventWithId(id)
if (event == null || event.getReminders().isEmpty()) {
if (event == null || event.getReminders().none { it.type == REMINDER_NOTIFICATION }) {
return
}