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