From 7c7cf88ce14188aea24feddcdbab41a2bc5788f8 Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sun, 16 Nov 2025 02:06:12 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E4=B9=A6=E6=9E=B6=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E4=B8=8E=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96=20#291"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/bookshelf/books/BooksFragment.kt | 4 + .../books/styleDefalut/BaseBooksAdapter.kt | 2 +- .../books/styleDefalut/BooksAdapterGrid.kt | 15 +- .../styleDefalut/BooksAdapterGridCompact.kt | 8 +- .../styleDefalut/BooksAdapterGridCover.kt | 8 +- .../styleDefalut/BooksAdapterListCompact.kt | 4 +- .../styleFold/BooksAdapterListCompact.kt | 4 +- .../res/layout/dialog_read_book_style.xml | 4 +- .../main/res/layout/item_bookshelf_grid.xml | 156 ++++++++++-------- .../layout/item_bookshelf_grid_compact.xml | 139 ++++++++-------- .../layout/item_bookshelf_list_compact.xml | 107 +++++++----- app/src/main/res/layout/item_read_style.xml | 2 +- 12 files changed, 251 insertions(+), 202 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt index 60ee2de36..19b7393d5 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BooksFragment.kt @@ -124,7 +124,9 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), } private fun initRecyclerView() { + //binding.rvBookshelf.setEdgeEffectColor(primaryColor) upFastScrollerBar() + //binding.refreshLayout.setColorSchemeColors(accentColor) binding.refreshLayout.setOnRefreshListener { val books = booksAdapter.getItems() val refreshList = if (AppConfig.bookshelfRefreshingLimit > 0) { @@ -281,6 +283,8 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), /** * 将 RecyclerView 中的视图全部回收到 RecycledViewPool 中 */ + upLastUpdateTimeJob?.cancel() + booksFlowJob?.cancel() binding.rvBookshelf.setItemViewCacheSize(0) binding.rvBookshelf.adapter = null } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BaseBooksAdapter.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BaseBooksAdapter.kt index 1e9bee718..f24141b75 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BaseBooksAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BaseBooksAdapter.kt @@ -84,7 +84,7 @@ abstract class BaseBooksAdapter(context: Context) : fun notification(bookUrl: String) { getItems().forEachIndexed { i, it -> if (it.bookUrl == bookUrl) { - notifyItemChanged(i, bundleOf(Pair("refresh", null), Pair("lastUpdateTime", null))) + notifyItemChanged(i, bundleOf("refresh" to true, "lastUpdateTime" to true)) return } } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt index c051f2a53..b97995078 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt @@ -9,7 +9,6 @@ import io.legado.app.databinding.ItemBookshelfGridBinding import io.legado.app.help.book.isLocal import io.legado.app.help.config.AppConfig import io.legado.app.utils.gone -import io.legado.app.utils.invisible import io.legado.app.utils.visible class BooksAdapterGrid(context: Context, private val callBack: CallBack) : @@ -45,7 +44,7 @@ class BooksAdapterGrid(context: Context, private val callBack: CallBack) : private fun upRefresh(binding: ItemBookshelfGridBinding, item: Book) { if (!item.isLocal && callBack.isUpdate(item.bookUrl)) { - binding.cdUnread.invisible() + binding.cdUnread.gone() binding.rlLoading.visible() } else { binding.rlLoading.gone() @@ -55,25 +54,25 @@ class BooksAdapterGrid(context: Context, private val callBack: CallBack) : binding.cdUnread.visible() binding.tvUnread.text = unreadCount.toString() } else { - binding.cdUnread.invisible() + binding.cdUnread.gone() } } else { - binding.cdUnread.invisible() + binding.cdUnread.gone() } } } override fun registerListener(holder: ItemViewHolder, binding: ItemBookshelfGridBinding) { - holder.itemView.setOnClickListener { + binding.cvContent.setOnClickListener { getItem(holder.layoutPosition)?.let { - callBack.open(it, binding.root) + callBack.open(it, binding.cdCover) } } - holder.itemView.setOnLongClickListener { + binding.cvContent.setOnLongClickListener { getItem(holder.layoutPosition)?.let { - callBack.openBookInfo(it, binding.root) + callBack.openBookInfo(it, binding.cdCover) } true } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt index 65048bd5c..fdaa08ea9 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt @@ -73,15 +73,15 @@ class BooksAdapterGridCompact(context: Context, private val callBack: CallBack) binding: ItemBookshelfGridCompactBinding ) { - holder.itemView.setOnClickListener { + binding.cvContent.setOnClickListener { getItem(holder.layoutPosition)?.let { - callBack.open(it, binding.root) + callBack.open(it, binding.cvContent) } } - holder.itemView.setOnLongClickListener { + binding.cvContent.setOnLongClickListener { getItem(holder.layoutPosition)?.let { - callBack.openBookInfo(it, binding.root) + callBack.openBookInfo(it, binding.cvContent) } true } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt index dac8abf2f..fc520ddbf 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt @@ -74,15 +74,15 @@ class BooksAdapterGridCover(context: Context, private val callBack: CallBack) : binding: ItemBookshelfGridCompactBinding ) { - holder.itemView.setOnClickListener { + binding.cvContent.setOnClickListener { getItem(holder.layoutPosition)?.let { - callBack.open(it, binding.root) + callBack.open(it, binding.cvContent) } } - holder.itemView.setOnLongClickListener { + binding.cvContent.setOnLongClickListener { getItem(holder.layoutPosition)?.let { - callBack.openBookInfo(it, binding.root) + callBack.openBookInfo(it, binding.cvContent) } true } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt index 302233afa..0b6413acb 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt @@ -108,13 +108,13 @@ class BooksAdapterListCompact( holder.itemView.apply { binding.cvContent.setOnClickListener { getItem(holder.layoutPosition)?.let { - callBack.open(it, binding.cvContent) + callBack.open(it, binding.cdCover) } } binding.cvContent.onLongClick { getItem(holder.layoutPosition)?.let { - callBack.openBookInfo(it, binding.cvContent) + callBack.openBookInfo(it, binding.cdCover) } } } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt index f7c247780..998e254dd 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt @@ -111,10 +111,10 @@ class BooksAdapterListCompact(context: Context, callBack: CallBack) : fun registerListener(item: Any) { binding.cvContent.setOnClickListener { - callBack.onItemClick(item, binding.cvContent) + callBack.onItemClick(item, binding.cdCover) } binding.cvContent.onLongClick { - callBack.onItemLongClick(item, binding.cvContent) + callBack.onItemLongClick(item, binding.cdCover) } } diff --git a/app/src/main/res/layout/dialog_read_book_style.xml b/app/src/main/res/layout/dialog_read_book_style.xml index adf38b184..374d79a54 100644 --- a/app/src/main/res/layout/dialog_read_book_style.xml +++ b/app/src/main/res/layout/dialog_read_book_style.xml @@ -170,7 +170,6 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:layout_marginTop="8dp" - android:layout_marginBottom="4dp" android:text="@string/page_anim" android:textStyle="bold" android:textSize="12sp" /> @@ -269,6 +268,7 @@ style="@style/Widget.Material3Expressive.Button.TonalButton" android:checkable="true" android:clickable="true" + android:layout_marginVertical="2dp" app:icon="@drawable/ic_share_layout" app:iconGravity="textStart" app:iconPadding="0dp" @@ -293,7 +293,7 @@ - + android:layout_height="wrap_content"> - + app:cardBackgroundColor="@android:color/transparent" + android:layout_marginBottom="4dp" + android:clickable="true" + android:focusable="true" + app:strokeWidth="0dp" + app:layout_constraintTop_toTopOf="parent"> - - - + android:orientation="vertical"> - + + + + + + + + + + + + + + + + + + - - - - - - - - - + tools:ignore="RtlHardcoded" /> + + + diff --git a/app/src/main/res/layout/item_bookshelf_grid_compact.xml b/app/src/main/res/layout/item_bookshelf_grid_compact.xml index 1a609a254..21507e1ab 100644 --- a/app/src/main/res/layout/item_bookshelf_grid_compact.xml +++ b/app/src/main/res/layout/item_bookshelf_grid_compact.xml @@ -4,84 +4,89 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:clickable="true" - android:focusable="true" - app:strokeWidth="0dp" - app:cardCornerRadius="8dp" - android:layout_margin="8dp"> + app:cardBackgroundColor="@android:color/transparent" + app:strokeWidth="0dp"> - - - - - + android:paddingHorizontal="8dp" + android:paddingTop="2dp" + android:paddingBottom="12dp"> + android:clickable="true" + android:focusable="true" + android:background="?attr/selectableItemBackground" + app:cardCornerRadius="6dp" + app:layout_constraintTop_toTopOf="parent" + app:strokeWidth="0dp"> - + + + + + android:layout_gravity="top|end" + android:layout_margin="4dp" + android:visibility="visible" + app:cardBackgroundColor="?attr/colorSecondaryVariant" + app:cardCornerRadius="4dp" + app:strokeWidth="0dp"> + + + + - - - - + + diff --git a/app/src/main/res/layout/item_bookshelf_list_compact.xml b/app/src/main/res/layout/item_bookshelf_list_compact.xml index 772ecd9ab..a874d654e 100644 --- a/app/src/main/res/layout/item_bookshelf_list_compact.xml +++ b/app/src/main/res/layout/item_bookshelf_list_compact.xml @@ -15,58 +15,75 @@ android:layout_height="wrap_content" tools:ignore="UnusedAttribute"> - - - - + android:layout_margin="8dp" + android:transitionName="img_cover" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent"> + - + + + + + + + + + + -