diff options
author | Allan Wang <me@allanwang.ca> | 2019-07-27 21:17:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-27 21:17:30 -0700 |
commit | a3e5863c4f041fae446671ee7e9b84392656e119 (patch) | |
tree | f7b4f407bd1790de37c2b6280bec777697662eb0 /searchview | |
parent | d94017e6f6df67e80604111028ea16f6c7f4e077 (diff) | |
parent | 0bab0561f071fca253b75fbcdae453dbd8790cab (diff) | |
download | kau-a3e5863c4f041fae446671ee7e9b84392656e119.tar.gz kau-a3e5863c4f041fae446671ee7e9b84392656e119.tar.bz2 kau-a3e5863c4f041fae446671ee7e9b84392656e119.zip |
Merge pull request #206 from AllanWang/update/fastadapter
Update fastadapter to 4.x.x
Diffstat (limited to 'searchview')
-rw-r--r-- | searchview/build.gradle | 2 | ||||
-rw-r--r-- | searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchItem.kt | 4 | ||||
-rw-r--r-- | searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt | 58 |
3 files changed, 46 insertions, 18 deletions
diff --git a/searchview/build.gradle b/searchview/build.gradle index f9e83fc..64a88b3 100644 --- a/searchview/build.gradle +++ b/searchview/build.gradle @@ -1,3 +1,5 @@ +import kau.Dependencies + ext.kauSubModuleResourcePrefix = "kau_search_" apply from: '../android-lib.gradle' diff --git a/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchItem.kt b/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchItem.kt index 7747d81..7bf01b3 100644 --- a/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchItem.kt +++ b/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchItem.kt @@ -32,7 +32,7 @@ import ca.allanwang.kau.utils.setIcon import ca.allanwang.kau.utils.setRippleBackground import ca.allanwang.kau.utils.visible import com.mikepenz.iconics.typeface.IIcon -import com.mikepenz.google_material_typeface_library.GoogleMaterial +import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial /** * Created by Allan Wang on 2017-06-23. @@ -47,7 +47,7 @@ class SearchItem( val description: String? = null, val iicon: IIcon? = GoogleMaterial.Icon.gmd_search, val image: Drawable? = null -) : KauIItem<SearchItem, SearchItem.ViewHolder>( +) : KauIItem<SearchItem.ViewHolder>( R.layout.kau_search_iitem, { ViewHolder(it) }, R.id.kau_item_search 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 10f2de3..da06ec4 100644 --- a/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt +++ b/searchview/src/main/kotlin/ca/allanwang/kau/searchview/SearchView.kt @@ -62,9 +62,10 @@ import ca.allanwang.kau.utils.tint import ca.allanwang.kau.utils.toDrawable import ca.allanwang.kau.utils.visible import ca.allanwang.kau.utils.withLinearAdapter -import com.mikepenz.fastadapter.commons.adapters.FastItemAdapter +import com.mikepenz.fastadapter.adapters.FastItemAdapter +import com.mikepenz.fastadapter.select.selectExtension import com.mikepenz.iconics.typeface.IIcon -import com.mikepenz.google_material_typeface_library.GoogleMaterial +import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial import kotlinx.android.synthetic.main.kau_search_view.view.* /** @@ -255,7 +256,11 @@ class SearchView @JvmOverloads constructor( val list = if (value.isEmpty() && configs.noResultsFound != INVALID_ID) listOf(SearchItem("", context.string(configs.noResultsFound), iicon = null)) else value - if (configs.highlightQueryText && value.isNotEmpty()) list.forEach { it.withHighlights(kau_search_edit_text.text?.toString()) } + if (configs.highlightQueryText && value.isNotEmpty()) list.forEach { + it.withHighlights( + kau_search_edit_text.text?.toString() + ) + } cardTransition() adapter.setNewList(list) } @@ -297,7 +302,8 @@ class SearchView @JvmOverloads constructor( View.inflate(context, R.layout.kau_search_view, this) z = 99f kau_search_nav.setSearchIcon(configs.navIcon).setOnClickListener { revealClose() } - kau_search_clear.setSearchIcon(configs.clearIcon).setOnClickListener { kau_search_edit_text.text?.clear() } + kau_search_clear.setSearchIcon(configs.clearIcon) + .setOnClickListener { kau_search_edit_text.text?.clear() } tintForeground(configs.foregroundColor) tintBackground(configs.backgroundColor) with(kau_search_recycler) { @@ -312,11 +318,18 @@ class SearchView @JvmOverloads constructor( itemAnimator = null } with(adapter) { - withSelectable(true) - withOnClickListener { _, _, item, position -> - if (item.key.isNotBlank()) configs.onItemClick(position, item.key, item.content, this@SearchView); true + selectExtension { + isSelectable = true + } + onClickListener = { _, _, item, position -> + if (item.key.isNotBlank()) configs.onItemClick( + position, + item.key, + item.content, + this@SearchView + ); true } - withOnLongClickListener { _, _, item, position -> + onLongClickListener = { _, _, item, position -> if (item.key.isNotBlank()) configs.onItemLongClick( position, item.key, @@ -390,7 +403,9 @@ class SearchView @JvmOverloads constructor( config(config) val 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) + if (menuItem.icon == null) { + menuItem.icon = GoogleMaterial.Icon.gmd_search.toDrawable(context, 18, menuIconColor) + } kau_search_cardview.gone() menuItem.setOnMenuItemClickListener { revealOpen(); true } kau_search_shadow.setOnClickListener { revealClose() } @@ -418,7 +433,8 @@ class SearchView @JvmOverloads constructor( menuX = (locations[0] + view.width / 2) menuHalfHeight = view.height / 2 menuY = (locations[1] + menuHalfHeight) - kau_search_cardview.viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener { + kau_search_cardview.viewTreeObserver.addOnPreDrawListener(object : + ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { view.viewTreeObserver.removeOnPreDrawListener(this) kau_search_cardview.setMarginTop(menuY - kau_search_cardview.height / 2) @@ -472,7 +488,11 @@ class SearchView @JvmOverloads constructor( configs.openListener?.invoke(this@SearchView) kau_search_shadow.fadeIn() kau_search_edit_text.showKeyboard() - kau_search_cardview.circularReveal(menuX, menuHalfHeight, duration = configs.revealDuration) { + kau_search_cardview.circularReveal( + menuX, + menuHalfHeight, + duration = configs.revealDuration + ) { cardTransition() kau_search_recycler.visible() } @@ -485,7 +505,9 @@ class SearchView @JvmOverloads constructor( kau_search_shadow.fadeOut(duration = configs.transitionDuration) cardTransition { addEndListener { - kau_search_cardview.circularHide(menuX, menuHalfHeight, duration = configs.revealDuration, + kau_search_cardview.circularHide(menuX, + menuHalfHeight, + duration = configs.revealDuration, onFinish = { configs.closeListener?.invoke(this@SearchView) if (configs.shouldClearOnClose) kau_search_edit_text.text?.clear() @@ -509,8 +531,9 @@ fun Activity.bindSearchView( menu: Menu, @IdRes id: Int, @ColorInt menuIconColor: Int = Color.WHITE, - config: SearchView.Configs.() -> Unit = {} -): SearchView = findViewById<ViewGroup>(android.R.id.content).bindSearchView(menu, id, menuIconColor, config) + config: Configs.() -> Unit = {} +): SearchView = + findViewById<ViewGroup>(android.R.id.content).bindSearchView(menu, id, menuIconColor, config) /** * Bind searchView to a menu item; call this in [Activity.onCreateOptionsMenu] @@ -522,11 +545,14 @@ fun ViewGroup.bindSearchView( menu: Menu, @IdRes id: Int, @ColorInt menuIconColor: Int = Color.WHITE, - config: SearchView.Configs.() -> Unit = {} + config: Configs.() -> Unit = {} ): SearchView { val searchView = SearchView(context) searchView.layoutParams = - FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT) + FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.MATCH_PARENT + ) addView(searchView) searchView.bind(menu, id, menuIconColor, config) return searchView |