pull/32/head
kunfei 5 years ago
parent 1c9e6846b3
commit b66f578bff
  1. 3
      app/src/main/java/io/legado/app/data/entities/rule/ExploreRule.kt
  2. 47
      app/src/main/java/io/legado/app/ui/main/findbook/FindBookAdapter.kt
  3. 2
      app/src/main/java/io/legado/app/ui/main/findbook/FindBookFragment.kt

@ -36,7 +36,8 @@ data class ExploreRule(
val b = a.split("(&&|\n)+".toRegex())
b.map { c ->
val d = c.split("::")
exploreKinds.add(ExploreKind(d[0], d[1]))
if (d.size > 1)
exploreKinds.add(ExploreKind(d[0], d[1]))
}
return exploreKinds
} catch (e: Exception) {

@ -10,15 +10,18 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.BookSource
import io.legado.app.help.coroutine.Coroutine
import io.legado.app.lib.theme.ColorUtils
import io.legado.app.utils.gone
import io.legado.app.utils.visible
import kotlinx.android.synthetic.main.item_find_book.view.*
import kotlinx.android.synthetic.main.item_text.view.*
import kotlinx.coroutines.CoroutineScope
import org.jetbrains.anko.sdk27.listeners.onClick
class FindBookAdapter:PagedListAdapter<BookSource, FindBookAdapter.MyViewHolder>(DIFF_CALLBACK) {
class FindBookAdapter(private val scope: CoroutineScope) :
PagedListAdapter<BookSource, FindBookAdapter.MyViewHolder>(DIFF_CALLBACK) {
var exIndex = 0
@ -58,26 +61,30 @@ class FindBookAdapter:PagedListAdapter<BookSource, FindBookAdapter.MyViewHolder>
}
if (exIndex == position) {
gl_child.visible()
bookSource.getExploreRule().getExploreKinds(bookSource.bookSourceUrl)?.let {
var rowNum = 0
var columnNum = 0
gl_child.removeAllViews()
it.map { kind ->
val tv = LayoutInflater.from(context)
.inflate(R.layout.item_text, gl_child, false)
tv.text_view.text = kind.title
val rowSpecs = GridLayout.spec(rowNum, 1.0f)
val colSpecs = GridLayout.spec(columnNum, 1.0f)
val params = GridLayout.LayoutParams(rowSpecs, colSpecs)
gl_child.addView(tv, params)
if (columnNum < 2) {
columnNum++
} else {
columnNum = 0
rowNum++
}
tv.onClick {
Coroutine.async(scope) {
bookSource.getExploreRule().getExploreKinds(bookSource.bookSourceUrl)
}.onSuccess {
it?.let {
var rowNum = 0
var columnNum = 0
gl_child.removeAllViews()
it.map { kind ->
val tv = LayoutInflater.from(context)
.inflate(R.layout.item_text, gl_child, false)
tv.text_view.text = kind.title
val rowSpecs = GridLayout.spec(rowNum, 1.0f)
val colSpecs = GridLayout.spec(columnNum, 1.0f)
val params = GridLayout.LayoutParams(rowSpecs, colSpecs)
gl_child.addView(tv, params)
if (columnNum < 2) {
columnNum++
} else {
columnNum = 0
rowNum++
}
tv.onClick {
}
}
}
}

@ -34,7 +34,7 @@ class FindBookFragment : BaseFragment(R.layout.fragment_find_book) {
private fun initRecyclerView() {
ATH.applyEdgeEffectColor(rv_find)
rv_find.layoutManager = LinearLayoutManager(context)
adapter = FindBookAdapter()
adapter = FindBookAdapter(this)
rv_find.adapter = adapter
}

Loading…
Cancel
Save