Merge pull request #1846 from Xwite/master

perf:验证码 浏览器页面内容缓存到内存
pull/1854/head
kunfei 3 years ago committed by GitHub
commit 05f1c91d77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      app/src/main/java/io/legado/app/help/CacheManager.kt
  2. 6
      app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt
  3. 2
      app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt

@ -35,6 +35,11 @@ object CacheManager {
} }
} }
fun putMemory(key: String, value: Any) {
val cache = Cache(key, value.toString(), 0)
memoryLruCache.put(key, cache)
}
fun get(key: String): String? { fun get(key: String): String? {
getFromMemory(key)?.let { getFromMemory(key)?.let {
return it return it

@ -19,7 +19,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
/** /**
* 图片验证码对话框 * 图片验证码对话框
* 结果保存在数据库 * 结果保存在内存
* val key = "${sourceOrigin ?: ""}_verificationResult" * val key = "${sourceOrigin ?: ""}_verificationResult"
* CacheManager.get(key) * CacheManager.get(key)
*/ */
@ -64,7 +64,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
tvOk.setOnClickListener { tvOk.setOnClickListener {
val verificationCode = binding.verificationCode.text.toString() val verificationCode = binding.verificationCode.text.toString()
verificationCode.let { verificationCode.let {
CacheManager.put(key, it) CacheManager.putMemory(key, it)
dismiss() dismiss()
} }
} }
@ -77,7 +77,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
override fun onDestroy() { override fun onDestroy() {
val sourceOrigin = arguments?.getString("sourceOrigin") val sourceOrigin = arguments?.getString("sourceOrigin")
val key = "${sourceOrigin}_verificationResult" val key = "${sourceOrigin}_verificationResult"
CacheManager.get(key) ?: CacheManager.put(key, "") CacheManager.get(key) ?: CacheManager.putMemory(key, "")
super.onDestroy() super.onDestroy()
activity?.finish() activity?.finish()
} }

@ -87,7 +87,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
if (sourceVerificationEnable) { if (sourceVerificationEnable) {
val key = "${sourceOrigin}_verificationResult" val key = "${sourceOrigin}_verificationResult"
html = AnalyzeUrl(baseUrl, headerMapF = headerMap).getStrResponse(useWebView = false).body html = AnalyzeUrl(baseUrl, headerMapF = headerMap).getStrResponse(useWebView = false).body
CacheManager.put(key, html ?: "") CacheManager.putMemory(key, html ?: "")
} }
} }

Loading…
Cancel
Save