pull/36/head
kunfei 6 years ago
parent e84579e359
commit 1c0335b2f1
  1. 7
      app/src/main/java/io/legado/app/ui/book/search/BookAdapter.kt
  2. 18
      app/src/main/java/io/legado/app/ui/book/search/HistoryKeyAdapter.kt
  3. 17
      app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt
  4. 4
      app/src/main/res/layout/activity_book_search.xml

@ -6,14 +6,19 @@ import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.SimpleRecyclerAdapter
import io.legado.app.data.entities.Book
import kotlinx.android.synthetic.main.item_text.view.*
import org.jetbrains.anko.sdk27.listeners.onClick
class BookAdapter(context: Context) :
class BookAdapter(context: Context, val callBack: CallBack) :
SimpleRecyclerAdapter<Book>(context, R.layout.item_text) {
override fun convert(holder: ItemViewHolder, item: Book, payloads: MutableList<Any>) {
with(holder.itemView) {
text_view.text = item.name
onClick { callBack.showBookInfo(item.bookUrl) }
}
}
interface CallBack {
fun showBookInfo(url: String)
}
}

@ -5,16 +5,32 @@ import io.legado.app.R
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.SimpleRecyclerAdapter
import io.legado.app.data.entities.SearchKeyword
import io.legado.app.ui.widget.anima.explosion_field.ExplosionField
import kotlinx.android.synthetic.main.item_text.view.*
import org.jetbrains.anko.sdk27.listeners.onClick
import org.jetbrains.anko.sdk27.listeners.onLongClick
class HistoryKeyAdapter(context: Context) :
class HistoryKeyAdapter(context: Context, val callBack: CallBack) :
SimpleRecyclerAdapter<SearchKeyword>(context, R.layout.item_text) {
override fun convert(holder: ItemViewHolder, item: SearchKeyword, payloads: MutableList<Any>) {
with(holder.itemView) {
text_view.text = item.word
onClick {
callBack.searchHistory(item.word)
}
onLongClick {
it?.let {
ExplosionField(context).explode(it, true)
}
true
}
}
}
interface CallBack {
fun searchHistory(key: String)
}
}

@ -27,6 +27,8 @@ import org.jetbrains.anko.sdk27.listeners.onClick
import org.jetbrains.anko.startActivity
class SearchActivity : VMBaseActivity<SearchViewModel>(R.layout.activity_book_search),
BookAdapter.CallBack,
HistoryKeyAdapter.CallBack,
SearchAdapter.CallBack {
override val viewModel: SearchViewModel
@ -90,11 +92,11 @@ class SearchActivity : VMBaseActivity<SearchViewModel>(R.layout.activity_book_se
ATH.applyEdgeEffectColor(recycler_view)
ATH.applyEdgeEffectColor(rv_bookshelf_search)
ATH.applyEdgeEffectColor(rv_history_key)
bookAdapter = BookAdapter(this)
bookAdapter = BookAdapter(this, this)
rv_bookshelf_search.layoutManager =
LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)
rv_bookshelf_search.adapter = bookAdapter
historyKeyAdapter = HistoryKeyAdapter(this)
historyKeyAdapter = HistoryKeyAdapter(this, this)
rv_history_key.layoutManager = LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)
rv_history_key.adapter = historyKeyAdapter
adapter = SearchAdapter(this)
@ -112,9 +114,10 @@ class SearchActivity : VMBaseActivity<SearchViewModel>(R.layout.activity_book_se
), 30
).build()
searchBookData?.observe(this, Observer { adapter.submitList(it) })
upHistory()
}
private fun upHistory(key: String?) {
private fun upHistory(key: String? = null) {
bookData?.removeObservers(this)
if (key.isNullOrBlank()) {
tv_book_show.gone()
@ -149,4 +152,12 @@ class SearchActivity : VMBaseActivity<SearchViewModel>(R.layout.activity_book_se
}
}
}
override fun showBookInfo(url: String) {
startActivity<BookInfoActivity>(Pair("bookUrl", url))
}
override fun searchHistory(key: String) {
search_view.setQuery(key, false)
}
}

@ -43,6 +43,8 @@
android:background="@color/background"
android:orientation="vertical"
android:visibility="gone"
android:clickable="true"
android:focusable="true"
app:layout_constraintTop_toBottomOf="@id/title_bar"
app:layout_constraintBottom_toBottomOf="parent">
@ -84,7 +86,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_history_key"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

Loading…
Cancel
Save