There's a button at the top of the list to do itpull/3372/head
parent
183f28b382
commit
2c79b97815
@ -0,0 +1,84 @@
|
|||||||
|
package eu.kanade.tachiyomi.ui.library
|
||||||
|
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
|
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
|
||||||
|
import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
||||||
|
import eu.kanade.tachiyomi.util.view.updateLayoutParams
|
||||||
|
import kotlinx.android.synthetic.main.material_text_button.*
|
||||||
|
|
||||||
|
class SearchGlobalItem : AbstractFlexibleItem<SearchGlobalItem.Holder>() {
|
||||||
|
|
||||||
|
var string = ""
|
||||||
|
|
||||||
|
override fun getLayoutRes(): Int {
|
||||||
|
return R.layout.material_text_button
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun createViewHolder(
|
||||||
|
view: View,
|
||||||
|
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>
|
||||||
|
): Holder {
|
||||||
|
view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||||
|
width = MATCH_PARENT
|
||||||
|
}
|
||||||
|
return Holder(view, adapter)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isSelectable(): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isSwipeable(): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isDraggable(): Boolean {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun bindViewHolder(
|
||||||
|
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
|
||||||
|
holder: Holder,
|
||||||
|
position: Int,
|
||||||
|
payloads: MutableList<Any>
|
||||||
|
) {
|
||||||
|
holder.bind(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun equals(other: Any?): Boolean {
|
||||||
|
return this === other
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun hashCode(): Int {
|
||||||
|
return -100
|
||||||
|
}
|
||||||
|
|
||||||
|
class Holder(val view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>) :
|
||||||
|
BaseFlexibleViewHolder(view, adapter, true) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
button.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||||
|
width = MATCH_PARENT
|
||||||
|
}
|
||||||
|
button.setOnClickListener {
|
||||||
|
val query = (adapter.getItem(adapterPosition) as SearchGlobalItem).string
|
||||||
|
(adapter as? LibraryCategoryAdapter)?.libraryListener?.globalSearch(query)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun bind(string: String) {
|
||||||
|
button.text = view.context.getString(R.string.search_globally, string)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onLongClick(view: View?): Boolean {
|
||||||
|
super.onLongClick(view)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<com.google.android.material.button.MaterialButton style="@style/Theme.Widget.Button.TextButton"
|
<com.google.android.material.button.MaterialButton style="@style/Theme.Widget.Button.TextButton"
|
||||||
|
android:id="@+id/button"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/set_as_default_for_all"
|
android:text="@string/set_as_default_for_all"
|
||||||
|
Loading…
Reference in new issue