mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
adding the searching query
This commit is contained in:
@@ -10,6 +10,7 @@ import androidx.appcompat.widget.SearchView
|
|||||||
import androidx.core.view.MenuItemCompat
|
import androidx.core.view.MenuItemCompat
|
||||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.smsmessenger.R
|
import com.simplemobiletools.smsmessenger.R
|
||||||
|
import com.simplemobiletools.smsmessenger.extensions.messagesDB
|
||||||
|
|
||||||
class SearchActivity : SimpleActivity() {
|
class SearchActivity : SimpleActivity() {
|
||||||
private var mIsSearchOpen = false
|
private var mIsSearchOpen = false
|
||||||
@@ -32,21 +33,6 @@ class SearchActivity : SimpleActivity() {
|
|||||||
private fun setupSearch(menu: Menu) {
|
private fun setupSearch(menu: Menu) {
|
||||||
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
||||||
mSearchMenuItem = menu.findItem(R.id.search)
|
mSearchMenuItem = menu.findItem(R.id.search)
|
||||||
(mSearchMenuItem?.actionView as? SearchView)?.apply {
|
|
||||||
setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
|
||||||
isSubmitButtonEnabled = false
|
|
||||||
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
|
||||||
override fun onQueryTextSubmit(query: String) = false
|
|
||||||
|
|
||||||
override fun onQueryTextChange(newText: String): Boolean {
|
|
||||||
if (mIsSearchOpen) {
|
|
||||||
mLastSearchedText = newText
|
|
||||||
textChanged(newText)
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItemCompat.setOnActionExpandListener(mSearchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
MenuItemCompat.setOnActionExpandListener(mSearchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
||||||
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
||||||
@@ -63,12 +49,28 @@ class SearchActivity : SimpleActivity() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
mSearchMenuItem?.expandActionView()
|
mSearchMenuItem?.expandActionView()
|
||||||
|
(mSearchMenuItem?.actionView as? SearchView)?.apply {
|
||||||
|
setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
||||||
|
isSubmitButtonEnabled = false
|
||||||
|
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(query: String) = false
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String): Boolean {
|
||||||
|
if (mIsSearchOpen) {
|
||||||
|
mLastSearchedText = newText
|
||||||
|
textChanged(newText)
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun textChanged(text: String) {
|
private fun textChanged(text: String) {
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
|
val messages = messagesDB.getMessagesWithText("%$text%")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,9 @@ interface MessagesDao {
|
|||||||
@Query("SELECT * FROM messages WHERE thread_id = :threadId")
|
@Query("SELECT * FROM messages WHERE thread_id = :threadId")
|
||||||
fun getThreadMessages(threadId: Long): List<Message>
|
fun getThreadMessages(threadId: Long): List<Message>
|
||||||
|
|
||||||
|
@Query("SELECT * FROM messages WHERE body LIKE :text")
|
||||||
|
fun getMessagesWithText(text: String): List<Message>
|
||||||
|
|
||||||
@Query("UPDATE messages SET read = 1 WHERE id = :id")
|
@Query("UPDATE messages SET read = 1 WHERE id = :id")
|
||||||
fun markRead(id: Long)
|
fun markRead(id: Long)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user