pull/84/head
kunfei 5 years ago
parent 682712cc84
commit 7f2ba54d9d
  1. 10
      app/src/main/java/io/legado/app/ui/changecover/ChangeCoverDialog.kt
  2. 4
      app/src/main/java/io/legado/app/ui/changecover/ChangeCoverViewModel.kt
  3. 6
      app/src/main/java/io/legado/app/ui/changecover/CoverAdapter.kt

@ -14,7 +14,9 @@ import io.legado.app.utils.getViewModel
import kotlinx.android.synthetic.main.dialog_change_source.*
class ChangeCoverDialog : DialogFragment(), ChangeCoverViewModel.CallBack {
class ChangeCoverDialog : DialogFragment(),
ChangeCoverViewModel.CallBack,
CoverAdapter.CallBack {
companion object {
const val tag = "changeCoverDialog"
@ -68,11 +70,15 @@ class ChangeCoverDialog : DialogFragment(), ChangeCoverViewModel.CallBack {
}
}
recycler_view.layoutManager = GridLayoutManager(requireContext(), 3)
adapter = CoverAdapter(requireContext())
adapter = CoverAdapter(requireContext(), this)
recycler_view.adapter = adapter
viewModel.initData()
}
override fun changeTo(coverUrl: String) {
callBack?.coverChangeTo(coverUrl)
}
interface CallBack {
fun coverChangeTo(coverUrl: String)
}

@ -44,7 +44,9 @@ class ChangeCoverViewModel(application: Application) : BaseViewModel(application
.onSuccess(Dispatchers.IO) {
if (it != null && it.isNotEmpty()) {
val searchBook = it[0]
if (searchBook.name == name && searchBook.author == author) {
if (searchBook.name == name && searchBook.author == author
&& !searchBook.coverUrl.isNullOrEmpty()
) {
App.db.searchBookDao().insert(searchBook)
callBack?.adapter?.let { adapter ->
if (!adapter.getItems().contains(searchBook)) {

@ -9,7 +9,7 @@ import io.legado.app.help.ImageLoader
import kotlinx.android.synthetic.main.item_cover.view.*
import org.jetbrains.anko.sdk27.listeners.onClick
class CoverAdapter(context: Context) :
class CoverAdapter(context: Context, val callBack: CallBack) :
SimpleRecyclerAdapter<SearchBook>(context, R.layout.item_cover) {
override fun convert(holder: ItemViewHolder, item: SearchBook, payloads: MutableList<Any>) {
@ -22,12 +22,12 @@ class CoverAdapter(context: Context) :
}
tv_source.text = item.originName
onClick {
callBack.changeTo(item.coverUrl!!)
}
}
}
interface CallBack {
fun changeTo()
fun changeTo(coverUrl: String)
}
}
Loading…
Cancel
Save