mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-15 19:30:50 +01:00
Merge pull request #673 from azisuazusa/638_filter_on_widget
filter on widget
This commit is contained in:
commit
3dba9c5026
@ -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 }))
|
||||
|
@ -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> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user