aboutsummaryrefslogtreecommitdiff
path: root/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt
diff options
context:
space:
mode:
Diffstat (limited to 'searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt')
-rw-r--r--searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt16
1 files changed, 6 insertions, 10 deletions
diff --git a/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt b/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt
index 30e224e..4058f16 100644
--- a/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt
+++ b/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt
@@ -16,7 +16,6 @@ import android.view.*
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.ProgressBar
-import ca.allanwang.kau.animators.NoAnimator
import ca.allanwang.kau.kotlin.nonReadable
import ca.allanwang.kau.searchview.SearchView.Configs
import ca.allanwang.kau.ui.views.BoundedCardView
@@ -286,7 +285,7 @@ class SearchView @JvmOverloads constructor(
fun bind(menu: Menu, @IdRes id: Int, @ColorInt menuIconColor: Int = Color.WHITE, config: Configs.() -> Unit = {}): SearchView {
config(config)
configs.textObserver(textEvents.filter { it.isNotBlank() }, this)
- menuItem = menu.findItem(id)
+ menuItem = menu.findItem(id) ?: throw IllegalArgumentException("Menu item with given id doesn't exist")
if (menuItem!!.icon == null) menuItem!!.icon = GoogleMaterial.Icon.gmd_search.toDrawable(context, 18, menuIconColor)
card.gone()
menuItem!!.setOnMenuItemClickListener { configureCoords(it); revealOpen(); true }
@@ -294,9 +293,11 @@ class SearchView @JvmOverloads constructor(
return this
}
- fun unBind(replacementMenuItemClickListener: MenuItem.OnMenuItemClickListener? = null) {
+ fun unBind(replacementMenuItemClickListener: ((item: MenuItem) -> Boolean)? = null) {
parentViewGroup.removeView(this)
- menuItem?.setOnMenuItemClickListener(replacementMenuItemClickListener)
+ if (replacementMenuItemClickListener != null)
+ menuItem?.setOnMenuItemClickListener(replacementMenuItemClickListener)
+ menuItem = null
}
fun configureCoords(item: MenuItem) {
@@ -309,11 +310,7 @@ class SearchView @JvmOverloads constructor(
card.viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
view.viewTreeObserver.removeOnPreDrawListener(this)
- val topAlignment = menuY - card.height / 2
- val params = (card.layoutParams as MarginLayoutParams).apply {
- topMargin = topAlignment
- }
- card.layoutParams = params
+ card.setMarginTop(menuY - card.height / 2)
return false
}
})
@@ -376,7 +373,6 @@ class SearchView @JvmOverloads constructor(
onFinish = {
configs.closeListener?.invoke(this@SearchView)
if (configs.shouldClearOnClose) editText.text.clear()
- recycler.gone()
})
}
}