Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -567,14 +567,14 @@ interface JsExtensions {
|
||||
* 弹窗提示
|
||||
*/
|
||||
fun toast(msg: Any?) {
|
||||
appCtx.toastOnUi(msg.toString())
|
||||
appCtx.toastOnUi("${getSource()?.getTag()}: ${msg.toString()}")
|
||||
}
|
||||
|
||||
/**
|
||||
* 弹窗提示 停留时间较长
|
||||
*/
|
||||
fun longToast(msg: Any?) {
|
||||
appCtx.longToastOnUi(msg.toString())
|
||||
appCtx.longToastOnUi("${getSource()?.getTag()}: ${msg.toString()}")
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.MenuItem
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import io.legado.app.R
|
||||
import io.legado.app.base.BaseDialogFragment
|
||||
@@ -13,8 +15,7 @@ import io.legado.app.help.glide.ImageLoader
|
||||
import io.legado.app.help.glide.OkHttpModelLoader
|
||||
import io.legado.app.lib.theme.primaryColor
|
||||
import io.legado.app.ui.widget.dialog.PhotoDialog
|
||||
import io.legado.app.utils.setLayout
|
||||
import io.legado.app.utils.showDialogFragment
|
||||
import io.legado.app.utils.*
|
||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||
|
||||
/**
|
||||
@@ -23,7 +24,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||
* val key = "${sourceOrigin ?: ""}_verificationResult"
|
||||
* CacheManager.get(key)
|
||||
*/
|
||||
class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification_code_view) {
|
||||
class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification_code_view), Toolbar.OnMenuItemClickListener {
|
||||
|
||||
constructor(imageUrl: String, sourceOrigin: String? = null) : this() {
|
||||
arguments = Bundle().apply {
|
||||
@@ -41,6 +42,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
initMenu()
|
||||
binding.run {
|
||||
toolBar.setBackgroundColor(primaryColor)
|
||||
val sourceOrigin = arguments?.getString("sourceOrigin")
|
||||
@@ -61,17 +63,29 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
|
||||
showDialogFragment(PhotoDialog(imageUrl, sourceOrigin))
|
||||
}
|
||||
}
|
||||
tvOk.setOnClickListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
binding.toolBar.inflateMenu(R.menu.verification_code)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
override fun onMenuItemClick(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.menu_ok -> {
|
||||
val sourceOrigin = arguments?.getString("sourceOrigin")
|
||||
val key = "${sourceOrigin}_verificationResult"
|
||||
val verificationCode = binding.verificationCode.text.toString()
|
||||
verificationCode.let {
|
||||
CacheManager.putMemory(key, it)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
tvCancel.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -68,8 +68,9 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
||||
R.id.menu_copy_url -> sendToClip(viewModel.baseUrl)
|
||||
R.id.menu_ok -> {
|
||||
if (viewModel.sourceVerificationEnable) {
|
||||
binding.titleBar.snackbar(R.string.ok)
|
||||
finish()
|
||||
viewModel.saveVerificationResult {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,9 +183,6 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
runBlocking {
|
||||
viewModel.saveVerificationResult()
|
||||
}
|
||||
binding.webView.destroy()
|
||||
}
|
||||
|
||||
|
||||
@@ -83,11 +83,15 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
|
||||
}
|
||||
}
|
||||
|
||||
fun saveVerificationResult() {
|
||||
if (sourceVerificationEnable) {
|
||||
val key = "${sourceOrigin}_verificationResult"
|
||||
html = AnalyzeUrl(baseUrl, headerMapF = headerMap).getStrResponse(useWebView = false).body
|
||||
CacheManager.putMemory(key, html ?: "")
|
||||
fun saveVerificationResult(success: () -> Unit) {
|
||||
execute {
|
||||
if (sourceVerificationEnable) {
|
||||
val key = "${sourceOrigin}_verificationResult"
|
||||
html = AnalyzeUrl(baseUrl, headerMapF = headerMap).getStrResponseAwait(useWebView = false).body
|
||||
CacheManager.putMemory(key, html ?: "")
|
||||
}
|
||||
}.onSuccess {
|
||||
success.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user