From 3a12c08e8374cdc895785f039e78bec2c1ef8d24 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Thu, 18 Jan 2024 13:40:57 +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 --- .../bookshelf/style1/books/BooksAdapterList.kt | 17 +++++++++++++++-- .../bookshelf/style1/books/BooksFragment.kt | 2 +- .../app/ui/widget/image/CoverImageView.kt | 12 +++++++++--- .../app/utils/RequestManagerExtensions.kt | 2 -- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksAdapterList.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksAdapterList.kt index 70354aff6..83b83e21b 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksAdapterList.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksAdapterList.kt @@ -3,6 +3,7 @@ package io.legado.app.ui.main.bookshelf.style1.books import android.content.Context import android.os.Bundle import android.view.ViewGroup +import androidx.lifecycle.Lifecycle import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.data.entities.Book import io.legado.app.databinding.ItemBookshelfListBinding @@ -12,7 +13,11 @@ import io.legado.app.utils.invisible import io.legado.app.utils.toTimeAgo import splitties.views.onLongClick -class BooksAdapterList(context: Context, private val callBack: CallBack) : +class BooksAdapterList( + context: Context, + private val callBack: CallBack, + private val lifecycle: Lifecycle +) : BaseBooksAdapter(context) { override fun getViewBinding(parent: ViewGroup): ItemBookshelfListBinding { @@ -41,7 +46,15 @@ class BooksAdapterList(context: Context, private val callBack: CallBack) : when (it) { "name" -> tvName.text = item.name "author" -> tvAuthor.text = item.author - "cover" -> ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin) + "cover" -> ivCover.load( + item.getDisplayCover(), + item.name, + item.author, + false, + item.origin, + lifecycle + ) + "refresh" -> upRefresh(binding, item) "lastUpdateTime" -> upLastUpdateTime(binding, item) } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt index 2ef7c2fcf..e9584c80c 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt @@ -62,7 +62,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), private val bookshelfLayout by lazy { AppConfig.bookshelfLayout } private val booksAdapter: BaseBooksAdapter<*> by lazy { if (bookshelfLayout == 0) { - BooksAdapterList(requireContext(), this) + BooksAdapterList(requireContext(), this, lifecycle) } else { BooksAdapterGrid(requireContext(), this) } diff --git a/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt b/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt index 8d3eb6e7d..145f88e51 100644 --- a/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt @@ -9,6 +9,7 @@ import android.graphics.Typeface import android.graphics.drawable.Drawable import android.text.TextPaint import android.util.AttributeSet +import androidx.lifecycle.Lifecycle import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener @@ -180,7 +181,8 @@ class CoverImageView @JvmOverloads constructor( name: String? = null, author: String? = null, loadOnlyWifi: Boolean = false, - sourceOrigin: String? = null + sourceOrigin: String? = null, + lifecycle: Lifecycle? = null ) { this.bitmapPath = path this.name = name?.replace(AppPattern.bdRegex, "")?.trim() @@ -195,8 +197,12 @@ class CoverImageView @JvmOverloads constructor( if (sourceOrigin != null) { options = options.set(OkHttpModelLoader.sourceOriginOption, sourceOrigin) } - ImageLoader.load(context, path)//Glide自动识别http://,content://和file:// - .apply(options) + val builder = if (lifecycle != null) { + ImageLoader.load(lifecycle, path) + } else { + ImageLoader.load(context, path)//Glide自动识别http://,content://和file:// + } + builder.apply(options) .placeholder(BookCover.defaultDrawable) .error(BookCover.defaultDrawable) .listener(glideListener) diff --git a/app/src/main/java/io/legado/app/utils/RequestManagerExtensions.kt b/app/src/main/java/io/legado/app/utils/RequestManagerExtensions.kt index f4a068885..89264dc84 100644 --- a/app/src/main/java/io/legado/app/utils/RequestManagerExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/RequestManagerExtensions.kt @@ -8,8 +8,6 @@ import com.bumptech.glide.RequestManager fun RequestManager.lifecycle(lifecycle: Lifecycle): RequestManager { val observer = object : DefaultLifecycleObserver { - override fun onStart(owner: LifecycleOwner) = onStart() - override fun onStop(owner: LifecycleOwner) = onStop() override fun onResume(owner: LifecycleOwner) = onStart() override fun onPause(owner: LifecycleOwner) = onStop() override fun onDestroy(owner: LifecycleOwner) {