From 7f2ba54d9d38facc36799485ee96a9bfbf3f9d0f Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 3 Feb 2020 20:47:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/changecover/ChangeCoverDialog.kt | 10 ++++++++-- .../legado/app/ui/changecover/ChangeCoverViewModel.kt | 4 +++- .../java/io/legado/app/ui/changecover/CoverAdapter.kt | 6 +++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverDialog.kt b/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverDialog.kt index 24ecbd7f0..73486159d 100644 --- a/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverDialog.kt +++ b/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverDialog.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) } diff --git a/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverViewModel.kt b/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverViewModel.kt index 27899a44c..d8ed01d9f 100644 --- a/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/changecover/ChangeCoverViewModel.kt @@ -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)) { diff --git a/app/src/main/java/io/legado/app/ui/changecover/CoverAdapter.kt b/app/src/main/java/io/legado/app/ui/changecover/CoverAdapter.kt index f952a8b20..884e4adff 100644 --- a/app/src/main/java/io/legado/app/ui/changecover/CoverAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/changecover/CoverAdapter.kt @@ -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(context, R.layout.item_cover) { override fun convert(holder: ItemViewHolder, item: SearchBook, payloads: MutableList) { @@ -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) } } \ No newline at end of file