From 338c32c92cb7ff4a8eb927fcdd257f5e5ea86f6e Mon Sep 17 00:00:00 2001 From: kunfei Date: Tue, 19 Apr 2022 14:07:34 +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 --- .../java/io/legado/app/model/BookCover.kt | 16 ++++++-- .../app/ui/widget/dialog/PhotoDialog.kt | 41 +++++++++++++------ 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/BookCover.kt b/app/src/main/java/io/legado/app/model/BookCover.kt index 0451fcae4..75fba23de 100644 --- a/app/src/main/java/io/legado/app/model/BookCover.kt +++ b/app/src/main/java/io/legado/app/model/BookCover.kt @@ -70,13 +70,17 @@ object BookCover { fun load( context: Context, path: String?, - loadOnlyWifi: Boolean = false + loadOnlyWifi: Boolean = false, + sourceOrigin: String? = null ): RequestBuilder { if (AppConfig.useDefaultCover) { return ImageLoader.load(context, defaultDrawable) .centerCrop() } - val options = RequestOptions().set(OkHttpModelLoader.loadOnlyWifiOption, loadOnlyWifi) + var options = RequestOptions().set(OkHttpModelLoader.loadOnlyWifiOption, loadOnlyWifi) + if (sourceOrigin != null) { + options = options.set(OkHttpModelLoader.sourceOriginOption, sourceOrigin) + } return ImageLoader.load(context, path) .apply(options) .placeholder(defaultDrawable) @@ -90,14 +94,18 @@ object BookCover { fun loadBlur( context: Context, path: String?, - loadOnlyWifi: Boolean = false + loadOnlyWifi: Boolean = false, + sourceOrigin: String? = null ): RequestBuilder { val loadBlur = ImageLoader.load(context, defaultDrawable) .transform(BlurTransformation(25), CenterCrop()) if (AppConfig.useDefaultCover) { return loadBlur } - val options = RequestOptions().set(OkHttpModelLoader.loadOnlyWifiOption, loadOnlyWifi) + var options = RequestOptions().set(OkHttpModelLoader.loadOnlyWifiOption, loadOnlyWifi) + if (sourceOrigin != null) { + options = options.set(OkHttpModelLoader.sourceOriginOption, sourceOrigin) + } return ImageLoader.load(context, path) .apply(options) .transform(BlurTransformation(25), CenterCrop()) diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt index d5aba7ae9..434cc76f9 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt @@ -1,12 +1,15 @@ package io.legado.app.ui.widget.dialog +import android.annotation.SuppressLint import android.os.Bundle import android.view.View +import com.bumptech.glide.request.RequestOptions import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogPhotoViewBinding import io.legado.app.help.BookHelp import io.legado.app.help.glide.ImageLoader +import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.model.BookCover import io.legado.app.model.ReadBook import io.legado.app.utils.setLayout @@ -17,9 +20,10 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding */ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { - constructor(src: String) : this() { + constructor(src: String, sourceOrigin: String? = null) : this() { arguments = Bundle().apply { putString("src", src) + putString("sourceOrigin", sourceOrigin) } } @@ -30,19 +34,30 @@ class PhotoDialog() : BaseDialogFragment(R.layout.dialog_photo_view) { setLayout(1f, 1f) } + @SuppressLint("CheckResult") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - arguments?.getString("src")?.let { src -> - val file = ReadBook.book?.let { book -> - BookHelp.getImage(book, src) - } - if (file?.exists() == true) { - ImageLoader.load(requireContext(), file) - .error(R.drawable.image_loading_error) - .into(binding.photoView) - } else { - ImageLoader.load(requireContext(), src) - .error(BookCover.defaultDrawable) - .into(binding.photoView) + arguments?.let { arguments -> + arguments.getString("src")?.let { src -> + val file = ReadBook.book?.let { book -> + BookHelp.getImage(book, src) + } + if (file?.exists() == true) { + ImageLoader.load(requireContext(), file) + .error(R.drawable.image_loading_error) + .into(binding.photoView) + } else { + ImageLoader.load(requireContext(), src).apply { + arguments.getString("sourceOrigin")?.let { sourceOrigin -> + apply( + RequestOptions().set( + OkHttpModelLoader.sourceOriginOption, + sourceOrigin + ) + ) + } + }.error(BookCover.defaultDrawable) + .into(binding.photoView) + } } }