pull/1814/head
kunfei 2 years ago
parent 6e83e979c9
commit 338c32c92c
  1. 16
      app/src/main/java/io/legado/app/model/BookCover.kt
  2. 41
      app/src/main/java/io/legado/app/ui/widget/dialog/PhotoDialog.kt

@ -70,13 +70,17 @@ object BookCover {
fun load(
context: Context,
path: String?,
loadOnlyWifi: Boolean = false
loadOnlyWifi: Boolean = false,
sourceOrigin: String? = null
): RequestBuilder<Drawable> {
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<Drawable> {
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())

@ -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)
}
}
}

Loading…
Cancel
Save