mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
Merge pull request #673 from azisuazusa/638_filter_on_widget
filter on widget
This commit is contained in:
@@ -156,7 +156,7 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
|
|||||||
mediumFontSize = context.config.getFontSize()
|
mediumFontSize = context.config.getFontSize()
|
||||||
val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60
|
val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60
|
||||||
val toTS = DateTime().plusYears(1).seconds()
|
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 listItems = ArrayList<ListItem>(it.size)
|
||||||
val replaceDescription = context.config.replaceDescription
|
val replaceDescription = context.config.replaceDescription
|
||||||
val sorted = it.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))
|
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()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getEventsInBackground(fromTS: Int, toTS: Int, eventId: Int = -1, callback: (events: ArrayList<Event>) -> Unit) {
|
fun getEventsInBackground(fromTS: Int,
|
||||||
val events = ArrayList<Event>()
|
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"
|
var selection = "$COL_START_TS <= ? AND $COL_END_TS >= ? AND $COL_REPEAT_INTERVAL IS NULL AND $COL_START_TS != 0"
|
||||||
if (eventId != -1)
|
if (eventId != -1)
|
||||||
@@ -701,8 +705,19 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
|
|||||||
|
|
||||||
events.addAll(getAllDayEvents(fromTS, eventId))
|
events.addAll(getAllDayEvents(fromTS, eventId))
|
||||||
|
|
||||||
val filtered = events.distinct().filterNot { it.ignoreEventOccurrences.contains(Formatter.getDayCodeFromTS(it.startTS).toInt()) } as ArrayList<Event>
|
if (filterEventType) {
|
||||||
callback(filtered)
|
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> {
|
fun getRepeatableEventsFor(fromTS: Int, toTS: Int, eventId: Int = -1): List<Event> {
|
||||||
|
Reference in New Issue
Block a user