diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt index 27364571f..d6c316881 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt @@ -738,23 +738,21 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { mLatestSearchQuery = text search_placeholder_2.beGoneIf(text.length >= 2) if (text.length >= 2) { - dbHelper.getEventsWithSearchQuery(text) { searchedText, events -> + EventsHelper(applicationContext).getEventsWithSearchQuery(text, this) { searchedText, events -> if (searchedText == mLatestSearchQuery) { - runOnUiThread { - search_results_list.beVisibleIf(events.isNotEmpty()) - search_placeholder.beVisibleIf(events.isEmpty()) - val listItems = getEventListItems(events) - val eventsAdapter = EventListAdapter(this, listItems, true, this, search_results_list) { - if (it is ListEvent) { - Intent(applicationContext, EventActivity::class.java).apply { - putExtra(EVENT_ID, it.id) - startActivity(this) - } + search_results_list.beVisibleIf(events.isNotEmpty()) + search_placeholder.beVisibleIf(events.isEmpty()) + val listItems = getEventListItems(events) + val eventsAdapter = EventListAdapter(this, listItems, true, this, search_results_list) { + if (it is ListEvent) { + Intent(applicationContext, EventActivity::class.java).apply { + putExtra(EVENT_ID, it.id) + startActivity(this) } } - - search_results_list.adapter = eventsAdapter } + + search_results_list.adapter = eventsAdapter } } } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt index 9d41f3bd8..851f69995 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/DBHelper.kt @@ -98,20 +98,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont } } - fun getEventsWithSearchQuery(text: String, callback: (searchedText: String, events: List) -> Unit) { - Thread { - val searchQuery = "%$text%" - val selection = "$COL_TITLE LIKE ? OR $COL_LOCATION LIKE ? OR $COL_DESCRIPTION LIKE ?" - val selectionArgs = arrayOf(searchQuery, searchQuery, searchQuery) - val cursor = getEventsCursor(selection, selectionArgs) - val events = fillEvents(cursor) - - val displayEventTypes = context.config.displayEventTypes - val filteredEvents = events.filter { displayEventTypes.contains(it.eventType.toString()) } - callback(text, filteredEvents) - }.start() - } - fun getEvents(fromTS: Int, toTS: Int, eventId: Long = -1L, applyTypeFilter: Boolean = true, callback: (events: ArrayList) -> Unit) { Thread { getEventsInBackground(fromTS, toTS, eventId, applyTypeFilter, callback) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt index e3cb84cfd..a198e5928 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt @@ -191,4 +191,16 @@ class EventsHelper(val context: Context) { callback(eventIds.isNotEmpty()) }.start() } + + fun getEventsWithSearchQuery(text: String, activity: Activity, callback: (searchedText: String, events: List) -> Unit) { + Thread { + val searchQuery = "%$text%" + val events = context.eventsDB.getEventsForSearch(searchQuery) + val displayEventTypes = context.config.displayEventTypes + val filteredEvents = events.filter { displayEventTypes.contains(it.eventType.toString()) } + activity.runOnUiThread { + callback(text, filteredEvents) + } + }.start() + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt index 4fd8f425e..24bcabb8e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt @@ -50,6 +50,9 @@ interface EventsDao { @Query("SELECT id FROM events WHERE source = :source AND import_id != \"\"") fun getCalDAVCalendarEvents(source: String): List + @Query("SELECT * FROM events WHERE title LIKE :searchQuery OR location LIKE :searchQuery OR description LIKE :searchQuery") + fun getEventsForSearch(searchQuery: String): List + @Query("UPDATE events SET event_type = $REGULAR_EVENT_TYPE_ID WHERE event_type = :eventTypeId") fun resetEventsWithType(eventTypeId: Long)