From 768c79e7fae2112f054dad761d59c66b307e8706 Mon Sep 17 00:00:00 2001 From: kunfei Date: Mon, 27 Feb 2023 22:19:18 +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 --- .../main/bookshelf/style2/BooksAdapterGrid.kt | 8 +- .../main/bookshelf/style2/BooksAdapterList.kt | 159 +++++++++--------- 2 files changed, 83 insertions(+), 84 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt index ba0959a8d..8a81ad837 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt @@ -14,6 +14,7 @@ import io.legado.app.help.config.AppConfig import io.legado.app.utils.invisible import splitties.views.onLongClick +@Suppress("UNUSED_PARAMETER") class BooksAdapterGrid(context: Context, callBack: CallBack) : BaseBooksAdapter(context, callBack) { @@ -43,7 +44,7 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : holder.onBind(it, bundle) } holder is GroupViewHolder -> (callBack.getItem(position) as? BookGroup)?.let { - holder.onBind(it, position) + holder.onBind(it, bundle) } } } @@ -115,6 +116,11 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : } } + fun onBind(item: BookGroup, bundle: Bundle) = binding.run { + tvName.text = item.groupName + ivCover.load(item.cover) + } + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt index 6ccfecca2..466956e47 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt @@ -16,6 +16,7 @@ import io.legado.app.utils.invisible import io.legado.app.utils.visible import splitties.views.onLongClick +@Suppress("UNUSED_PARAMETER") class BooksAdapterList(context: Context, callBack: CallBack) : BaseBooksAdapter(context, callBack) { @@ -38,26 +39,49 @@ class BooksAdapterList(context: Context, callBack: CallBack) : val bundle = payloads.getOrNull(0) as? Bundle when { bundle == null -> super.onBindViewHolder(holder, position, payloads) - holder is BookViewHolder -> onBindBook(holder.binding, position, bundle) - holder is GroupViewHolder -> onBindGroup(holder.binding, position, bundle) + holder is BookViewHolder -> (callBack.getItem(position) as? Book)?.let { + holder.onBind(it, bundle) + } + holder is GroupViewHolder -> (callBack.getItem(position) as? BookGroup)?.let { + holder.onBind(it, bundle) + } } } - private fun onBindGroup( - binding: ItemBookshelfListGroupBinding, - position: Int, - @Suppress("UNUSED_PARAMETER") bundle: Bundle - ) { - binding.run { - val item = callBack.getItem(position) as BookGroup - tvName.text = item.groupName - ivCover.load(item.cover) + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is BookViewHolder -> (callBack.getItem(position) as? Book)?.let { + holder.onBind(it, position) + } + is GroupViewHolder -> (callBack.getItem(position) as? BookGroup)?.let { + holder.onBind(it, position) + } } } - private fun onBindBook(binding: ItemBookshelfListBinding, position: Int, bundle: Bundle) { - binding.run { - val item = callBack.getItem(position) as? Book ?: return + inner class BookViewHolder(val binding: ItemBookshelfListBinding) : + RecyclerView.ViewHolder(binding.root) { + + fun onBind(item: Book, position: Int) = binding.run{ + tvName.text = item.name + tvAuthor.text = item.author + tvRead.text = item.durChapterTitle + tvLast.text = item.latestChapterTitle + ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin) + flHasNew.visible() + ivAuthor.visible() + ivLast.visible() + ivRead.visible() + upRefresh(this, item) + root.setOnClickListener { + callBack.onItemClick(position) + } + root.onLongClick { + callBack.onItemLongClick(position) + } + } + + fun onBind(item: Book, bundle: Bundle) = binding.run { tvRead.text = item.durChapterTitle tvLast.text = item.latestChapterTitle bundle.keySet().forEach { @@ -69,81 +93,50 @@ class BooksAdapterList(context: Context, callBack: CallBack) : } } } - } - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - when (holder) { - is BookViewHolder -> onBindBook(holder.binding, position) - is GroupViewHolder -> onBindGroup(holder.binding, position) - } - } - - private fun onBindGroup(binding: ItemBookshelfListGroupBinding, position: Int) { - binding.run { - val item = callBack.getItem(position) - if (item is BookGroup) { - tvName.text = item.groupName - ivCover.load(item.cover) - flHasNew.gone() - ivAuthor.gone() - ivLast.gone() - ivRead.gone() - tvAuthor.gone() - tvLast.gone() - tvRead.gone() - } - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } - } - } - - private fun onBindBook(binding: ItemBookshelfListBinding, position: Int) { - binding.run { - val item = callBack.getItem(position) - if (item is Book) { - tvName.text = item.name - tvAuthor.text = item.author - tvRead.text = item.durChapterTitle - tvLast.text = item.latestChapterTitle - ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin) - flHasNew.visible() - ivAuthor.visible() - ivLast.visible() - ivRead.visible() - upRefresh(this, item) - } - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } - } - } - - private fun upRefresh(binding: ItemBookshelfListBinding, item: Book) { - if (!item.isLocal && callBack.isUpdate(item.bookUrl)) { - binding.bvUnread.invisible() - binding.rlLoading.visible() - } else { - binding.rlLoading.gone() - if (AppConfig.showUnread) { - binding.bvUnread.setHighlight(item.lastCheckCount > 0) - binding.bvUnread.setBadgeCount(item.getUnreadChapterNum()) - } else { + private fun upRefresh(binding: ItemBookshelfListBinding, item: Book) { + if (!item.isLocal && callBack.isUpdate(item.bookUrl)) { binding.bvUnread.invisible() + binding.rlLoading.visible() + } else { + binding.rlLoading.gone() + if (AppConfig.showUnread) { + binding.bvUnread.setHighlight(item.lastCheckCount > 0) + binding.bvUnread.setBadgeCount(item.getUnreadChapterNum()) + } else { + binding.bvUnread.invisible() + } } } + } - class BookViewHolder(val binding: ItemBookshelfListBinding) : - RecyclerView.ViewHolder(binding.root) + inner class GroupViewHolder(val binding: ItemBookshelfListGroupBinding) : + RecyclerView.ViewHolder(binding.root) { - class GroupViewHolder(val binding: ItemBookshelfListGroupBinding) : - RecyclerView.ViewHolder(binding.root) + fun onBind(item: BookGroup, position: Int) = binding.run{ + tvName.text = item.groupName + ivCover.load(item.cover) + flHasNew.gone() + ivAuthor.gone() + ivLast.gone() + ivRead.gone() + tvAuthor.gone() + tvLast.gone() + tvRead.gone() + root.setOnClickListener { + callBack.onItemClick(position) + } + root.onLongClick { + callBack.onItemLongClick(position) + } + } + + fun onBind(item: BookGroup, bundle: Bundle) = binding.run { + tvName.text = item.groupName + ivCover.load(item.cover) + } + + } } \ No newline at end of file