apply the selected filters at tasks too

This commit is contained in:
tibbi 2022-02-27 20:48:22 +01:00
parent ea31dc6055
commit aba8d7167e
2 changed files with 17 additions and 12 deletions

View File

@ -272,30 +272,35 @@ class EventsHelper(val context: Context) {
val birthDayEventId = getBirthdaysEventTypeId(createIfNotExists = false)
val anniversaryEventId = getAnniversariesEventTypeId(createIfNotExists = false)
var events = if (applyTypeFilter) {
var events = ArrayList<Event>()
if (applyTypeFilter) {
val displayEventTypes = context.config.displayEventTypes
if (displayEventTypes.isEmpty()) {
callback(ArrayList())
return
} else {
try {
eventsDB.getOneTimeEventsFromToWithTypes(toTS, fromTS, context.config.getDisplayEventTypessAsList()).toMutableList() as ArrayList<Event>
val typesList = context.config.getDisplayEventTypessAsList()
events.addAll(eventsDB.getTasksFromTo(fromTS, toTS, typesList))
events.addAll(eventsDB.getOneTimeEventsFromToWithTypes(toTS, fromTS, typesList).toMutableList() as ArrayList<Event>)
} catch (e: Exception) {
ArrayList()
}
}
} else {
if (eventId == -1L) {
eventsDB.getOneTimeEventsFromTo(toTS, fromTS).toMutableList() as ArrayList<Event>
} else {
eventsDB.getOneTimeEventFromToWithId(eventId, toTS, fromTS).toMutableList() as ArrayList<Event>
}
events.addAll(eventsDB.getTasksFromTo(fromTS, toTS, ArrayList()))
events.addAll(
if (eventId == -1L) {
eventsDB.getOneTimeEventsFromTo(toTS, fromTS).toMutableList() as ArrayList<Event>
} else {
eventsDB.getOneTimeEventFromToWithId(eventId, toTS, fromTS).toMutableList() as ArrayList<Event>
}
)
}
events.addAll(getRepeatableEventsFor(fromTS, toTS, eventId, applyTypeFilter))
events.addAll(eventsDB.getTasksFromTo(fromTS, toTS))
events = events
.asSequence()
.distinct()

View File

@ -27,8 +27,8 @@ interface EventsDao {
@Query("SELECT * FROM events WHERE start_ts <= :toTS AND end_ts >= :fromTS AND repeat_interval = 0 AND type = $TYPE_EVENT")
fun getOneTimeEventsFromTo(toTS: Long, fromTS: Long): List<Event>
@Query("SELECT * FROM events WHERE start_ts <= :toTS AND start_ts >= :fromTS AND type = $TYPE_TASK")
fun getTasksFromTo(fromTS: Long, toTS: Long): List<Event>
@Query("SELECT * FROM events WHERE start_ts <= :toTS AND start_ts >= :fromTS AND event_type IN (:eventTypeIds) AND type = $TYPE_TASK")
fun getTasksFromTo(fromTS: Long, toTS: Long, eventTypeIds: List<Long>): List<Event>
@Query("SELECT * FROM events WHERE id = :id AND start_ts <= :toTS AND end_ts >= :fromTS AND repeat_interval = 0 AND type = $TYPE_EVENT")
fun getOneTimeEventFromToWithId(id: Long, toTS: Long, fromTS: Long): List<Event>