|
|
|
@ -16,11 +16,15 @@ import io.legado.app.help.glide.ImageLoader |
|
|
|
|
import io.legado.app.help.glide.OkHttpModelLoader |
|
|
|
|
import io.legado.app.help.source.SourceVerificationHelp |
|
|
|
|
import io.legado.app.lib.theme.primaryColor |
|
|
|
|
import io.legado.app.ui.book.read.page.provider.ImageProvider |
|
|
|
|
import io.legado.app.ui.widget.dialog.PhotoDialog |
|
|
|
|
import io.legado.app.utils.applyTint |
|
|
|
|
import io.legado.app.utils.setLayout |
|
|
|
|
import io.legado.app.utils.showDialogFragment |
|
|
|
|
import io.legado.app.utils.viewbindingdelegate.viewBinding |
|
|
|
|
import kotlinx.coroutines.Dispatchers.IO |
|
|
|
|
import kotlinx.coroutines.launch |
|
|
|
|
import kotlinx.coroutines.withContext |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 图片验证码对话框 |
|
|
|
@ -50,7 +54,6 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification |
|
|
|
|
setLayout(1f, ViewGroup.LayoutParams.WRAP_CONTENT) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressLint("CheckResult") |
|
|
|
|
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { |
|
|
|
|
initMenu() |
|
|
|
|
binding.run { |
|
|
|
@ -59,16 +62,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification |
|
|
|
|
toolBar.subtitle = arguments.getString("sourceName") |
|
|
|
|
val sourceOrigin = arguments.getString("sourceOrigin") |
|
|
|
|
arguments.getString("imageUrl")?.let { imageUrl -> |
|
|
|
|
ImageLoader.load(requireContext(), imageUrl).apply { |
|
|
|
|
sourceOrigin?.let { |
|
|
|
|
apply( |
|
|
|
|
RequestOptions().set(OkHttpModelLoader.sourceOriginOption, it) |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
}.error(R.drawable.image_loading_error) |
|
|
|
|
.diskCacheStrategy(DiskCacheStrategy.NONE) |
|
|
|
|
//.skipMemoryCache(true) |
|
|
|
|
.into(verificationCodeImageView) |
|
|
|
|
loadImage(imageUrl, sourceOrigin) |
|
|
|
|
verificationCodeImageView.setOnClickListener { |
|
|
|
|
showDialogFragment(PhotoDialog(imageUrl, sourceOrigin)) |
|
|
|
|
} |
|
|
|
@ -83,6 +77,28 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification |
|
|
|
|
binding.toolBar.menu.applyTint(requireContext()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressLint("CheckResult") |
|
|
|
|
private fun loadImage(url: String, sourceUrl: String?) { |
|
|
|
|
launch { |
|
|
|
|
ImageProvider.bitmapLruCache.remove(url) |
|
|
|
|
val image = withContext(IO) { |
|
|
|
|
ImageLoader.loadBitmap(requireContext(), url).apply { |
|
|
|
|
sourceUrl?.let { |
|
|
|
|
apply( |
|
|
|
|
RequestOptions().set(OkHttpModelLoader.sourceOriginOption, it) |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
}.error(R.drawable.image_loading_error) |
|
|
|
|
.diskCacheStrategy(DiskCacheStrategy.NONE) |
|
|
|
|
.skipMemoryCache(true) |
|
|
|
|
.submit() |
|
|
|
|
.get() |
|
|
|
|
} |
|
|
|
|
ImageProvider.bitmapLruCache.put(url, image) |
|
|
|
|
binding.verificationCodeImageView.setImageBitmap(image) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressLint("InflateParams") |
|
|
|
|
override fun onMenuItemClick(item: MenuItem): Boolean { |
|
|
|
|
when (item.itemId) { |
|
|
|
|