mirror of
https://github.com/melihaksoy/Android-Kotlin-Modulerized-CleanArchitecture.git
synced 2026-04-18 15:09:50 +02:00
Test
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
package com.melih.core.extensions
|
package com.melih.core.extensions
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.SearchView
|
||||||
|
import com.melih.core.utils.ClearFocusQueryTextListener
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shorthand for [contains] with ignoreCase set [true]
|
||||||
|
*/
|
||||||
fun CharSequence.containsIgnoreCase(other: CharSequence) = contains(other, true)
|
fun CharSequence.containsIgnoreCase(other: CharSequence) = contains(other, true)
|
||||||
|
|
||||||
|
fun SearchView.setOnQueryChangedListener(block: (String?) -> Unit) = setOnQueryTextListener(ClearFocusQueryTextListener(this, block))
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.melih.core.utils
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.SearchView
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simplifying [OnQueryTextListener][android.widget.SearchView.OnQueryTextListener]
|
||||||
|
*/
|
||||||
|
class ClearFocusQueryTextListener(
|
||||||
|
private val view: SearchView,
|
||||||
|
private val onQueryChangeBlock: (String?) -> Unit
|
||||||
|
) : SearchView.OnQueryTextListener {
|
||||||
|
|
||||||
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
|
view.clearFocus()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String?): Boolean {
|
||||||
|
onQueryChangeBlock(newText)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@ import com.melih.core.base.lifecycle.BaseDaggerFragment
|
|||||||
import com.melih.core.extensions.containsIgnoreCase
|
import com.melih.core.extensions.containsIgnoreCase
|
||||||
import com.melih.core.extensions.createFor
|
import com.melih.core.extensions.createFor
|
||||||
import com.melih.core.extensions.observe
|
import com.melih.core.extensions.observe
|
||||||
|
import com.melih.core.extensions.setOnQueryChangedListener
|
||||||
import com.melih.list.R
|
import com.melih.list.R
|
||||||
import com.melih.list.databinding.ListBinding
|
import com.melih.list.databinding.ListBinding
|
||||||
import com.melih.repository.entities.LaunchEntity
|
import com.melih.repository.entities.LaunchEntity
|
||||||
@@ -44,22 +45,7 @@ class LaunchesFragment : BaseDaggerFragment<ListBinding>(), SwipeRefreshLayout.O
|
|||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.menu_rocket_list, menu)
|
inflater.inflate(R.menu.menu_rocket_list, menu)
|
||||||
|
setSearchQueryListener((menu.findItem(R.id.search).actionView as SearchView))
|
||||||
(menu.findItem(R.id.search).actionView as SearchView).apply {
|
|
||||||
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
|
||||||
|
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
|
||||||
clearFocus()
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onQueryTextChange(newText: String?): Boolean {
|
|
||||||
launchesAdapter.submitList(filterItemListBy(newText))
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onCreateOptionsMenu(menu, inflater)
|
super.onCreateOptionsMenu(menu, inflater)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,6 +75,12 @@ class LaunchesFragment : BaseDaggerFragment<ListBinding>(), SwipeRefreshLayout.O
|
|||||||
startActivity(Actions.openDetailFor(item.id))
|
startActivity(Actions.openDetailFor(item.id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setSearchQueryListener(searchView: SearchView) {
|
||||||
|
searchView.setOnQueryChangedListener {
|
||||||
|
filterItemListBy(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun filterItemListBy(query: String?) =
|
private fun filterItemListBy(query: String?) =
|
||||||
if (!query.isNullOrBlank()) {
|
if (!query.isNullOrBlank()) {
|
||||||
itemList.filter {
|
itemList.filter {
|
||||||
|
|||||||
Reference in New Issue
Block a user