From 1c0335b2f1ea2c4779b52488014f5bb855ba9a14 Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 30 Sep 2019 17:12:23 +0800 Subject: [PATCH] up --- .../legado/app/ui/book/search/BookAdapter.kt | 7 ++++++- .../app/ui/book/search/HistoryKeyAdapter.kt | 18 +++++++++++++++++- .../app/ui/book/search/SearchActivity.kt | 17 ++++++++++++++--- .../main/res/layout/activity_book_search.xml | 4 +++- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/search/BookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/search/BookAdapter.kt index 9c8f2735c..3a08418e1 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/BookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/BookAdapter.kt @@ -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(context, R.layout.item_text) { override fun convert(holder: ItemViewHolder, item: Book, payloads: MutableList) { with(holder.itemView) { text_view.text = item.name + onClick { callBack.showBookInfo(item.bookUrl) } } } + interface CallBack { + fun showBookInfo(url: String) + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/search/HistoryKeyAdapter.kt b/app/src/main/java/io/legado/app/ui/book/search/HistoryKeyAdapter.kt index 752c1f705..48b60e9b0 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/HistoryKeyAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/HistoryKeyAdapter.kt @@ -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(context, R.layout.item_text) { override fun convert(holder: ItemViewHolder, item: SearchKeyword, payloads: MutableList) { 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) + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index 6d5ca5563..bdf2525f0 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -27,6 +27,8 @@ import org.jetbrains.anko.sdk27.listeners.onClick import org.jetbrains.anko.startActivity class SearchActivity : VMBaseActivity(R.layout.activity_book_search), + BookAdapter.CallBack, + HistoryKeyAdapter.CallBack, SearchAdapter.CallBack { override val viewModel: SearchViewModel @@ -90,11 +92,11 @@ class SearchActivity : VMBaseActivity(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(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(R.layout.activity_book_se } } } + + override fun showBookInfo(url: String) { + startActivity(Pair("bookUrl", url)) + } + + override fun searchHistory(key: String) { + search_view.setQuery(key, false) + } } diff --git a/app/src/main/res/layout/activity_book_search.xml b/app/src/main/res/layout/activity_book_search.xml index 4e5789b55..ebb7a3186 100644 --- a/app/src/main/res/layout/activity_book_search.xml +++ b/app/src/main/res/layout/activity_book_search.xml @@ -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 @@