diff --git a/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceAdapter.kt index 368527d4f..45e9da565 100644 --- a/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceAdapter.kt @@ -17,18 +17,23 @@ class ChangeSourceAdapter(context: Context) : SimpleRecyclerAdapter( override fun convert(holder: ItemViewHolder, item: SearchBook, payloads: MutableList) { holder.itemView.apply { - this.onClick { - callBack?.changeTo(item) - } - tv_origin.text = item.originName - tv_last.text = item.latestChapterTitle - callBack?.let { - if (it.curBookUrl() == item.bookUrl) { - iv_checked.visible() - } else { - iv_checked.invisible() + if (payloads.isEmpty()) { + this.onClick { + callBack?.changeTo(item) } - } ?: iv_checked.invisible() + tv_origin.text = item.originName + tv_last.text = item.latestChapterTitle + callBack?.let { + if (it.curBookUrl() == item.bookUrl) { + iv_checked.visible() + } else { + iv_checked.invisible() + } + } ?: iv_checked.invisible() + } else { + tv_origin.text = item.originName + tv_last.text = item.latestChapterTitle + } } } diff --git a/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceViewModel.kt index ac58feae8..b64d559f8 100644 --- a/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/changesource/ChangeSourceViewModel.kt @@ -36,8 +36,10 @@ class ChangeSourceViewModel(application: Application) : BaseViewModel(applicatio val books = searchBooks.toList() val diffResult = DiffUtil.calculateDiff(DiffCallBack(it.getItems(), searchBooks.toList())) withContext(Main) { - it.setItemsNoNotify(books) - diffResult.dispatchUpdatesTo(it) + synchronized(this) { + it.setItemsNoNotify(books) + diffResult.dispatchUpdatesTo(it) + } } } }