mirror of
https://github.com/rebelonion/Dantotsu.git
synced 2026-01-26 13:11:03 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package ani.dantotsu.others.webview
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.webkit.CookieManager
|
||||
import android.webkit.WebViewClient
|
||||
import ani.dantotsu.BottomSheetDialogFragment
|
||||
import ani.dantotsu.FileUrl
|
||||
import ani.dantotsu.databinding.BottomSheetWebviewBinding
|
||||
import ani.dantotsu.defaultHeaders
|
||||
|
||||
abstract class WebViewBottomDialog : BottomSheetDialogFragment() {
|
||||
|
||||
abstract val location: FileUrl
|
||||
|
||||
private var _binding: BottomSheetWebviewBinding? = null
|
||||
open val binding get() = _binding!!
|
||||
|
||||
abstract val title: String
|
||||
abstract val webViewClient: WebViewClient
|
||||
|
||||
var callback: ((Map<String, String>) -> Unit)? = null
|
||||
|
||||
protected var privateCallback: ((Map<String, String>) -> Unit) = {
|
||||
callback?.invoke(it)
|
||||
_binding?.webView?.stopLoading()
|
||||
dismiss()
|
||||
}
|
||||
|
||||
val cookies: CookieManager = CookieManager.getInstance()
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||
_binding = BottomSheetWebviewBinding.inflate(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
binding.webViewTitle.text = title
|
||||
binding.webView.settings.apply {
|
||||
javaScriptEnabled = true
|
||||
userAgentString = defaultHeaders["User-Agent"]
|
||||
}
|
||||
cookies.setAcceptThirdPartyCookies(binding.webView, true)
|
||||
binding.webView.webViewClient = webViewClient
|
||||
binding.webView.loadUrl(location.url, location.headers)
|
||||
this.dismiss()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
_binding = null
|
||||
super.onDestroy()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user