Merge pull request #673 from azisuazusa/638_filter_on_widget

filter on widget
This commit is contained in:
Tibor Kaputa 2018-10-24 11:58:05 +02:00 committed by GitHub
commit 3dba9c5026
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 5 deletions

View File

@ -156,7 +156,7 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
mediumFontSize = context.config.getFontSize()
val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60
val toTS = DateTime().plusYears(1).seconds()
context.dbHelper.getEventsInBackground(fromTS, toTS) {
context.dbHelper.getEventsInBackground(fromTS, toTS, filterEventType = true) {
val listItems = ArrayList<ListItem>(it.size)
val replaceDescription = context.config.replaceDescription
val sorted = it.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))

View File

@ -687,8 +687,12 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
}.start()
}
fun getEventsInBackground(fromTS: Int, toTS: Int, eventId: Int = -1, callback: (events: ArrayList<Event>) -> Unit) {
val events = ArrayList<Event>()
fun getEventsInBackground(fromTS: Int,
toTS: Int,
eventId: Int = -1,
filterEventType: Boolean = false,
callback: (events: ArrayList<Event>) -> Unit) {
var events = ArrayList<Event>()
var selection = "$COL_START_TS <= ? AND $COL_END_TS >= ? AND $COL_REPEAT_INTERVAL IS NULL AND $COL_START_TS != 0"
if (eventId != -1)
@ -701,8 +705,19 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
events.addAll(getAllDayEvents(fromTS, eventId))
val filtered = events.distinct().filterNot { it.ignoreEventOccurrences.contains(Formatter.getDayCodeFromTS(it.startTS).toInt()) } as ArrayList<Event>
callback(filtered)
if (filterEventType) {
val displayEventTypes = context.config.displayEventTypes
events = events.filter {
displayEventTypes.contains(it.eventType.toString())
} as ArrayList<Event>
}
events = events
.asSequence()
.distinct()
.filterNot { it.ignoreEventOccurrences.contains(Formatter.getDayCodeFromTS(it.startTS).toInt()) }
.toMutableList() as ArrayList<Event>
callback(events)
}
fun getRepeatableEventsFor(fromTS: Int, toTS: Int, eventId: Int = -1): List<Event> {