package com.future.driver.utils.view
|
|
import android.content.DialogInterface
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.webkit.WebChromeClient
|
import android.webkit.WebSettings
|
import androidx.fragment.app.DialogFragment
|
import com.future.driver.R
|
import com.future.driver.utils.Cache.CacheKey
|
import kotlinx.android.synthetic.main.dialog_user_rule.*
|
import org.jetbrains.anko.displayMetrics
|
|
class UserRuleDialog: DialogFragment() {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
|
inflater.inflate(R.layout.dialog_user_rule,container,false)
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME, R.style.FadeDialog)
|
}
|
|
private val privacy by lazy {
|
arguments!!.getString("privacy")
|
}
|
private val user by lazy {
|
arguments!!.getString("user")
|
}
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout((screenWidth()*0.88).toInt(), ViewGroup.LayoutParams.WRAP_CONTENT)
|
dialog?.window?.setGravity(Gravity.CENTER)
|
dialog?.setCanceledOnTouchOutside(false)
|
}
|
|
|
fun screenWidth():Int{
|
val dm = requireActivity().displayMetrics
|
requireActivity().windowManager.defaultDisplay.getMetrics(dm)
|
return dm.widthPixels
|
}
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
val settings = sc_content.settings
|
settings.javaScriptEnabled = true
|
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
settings.javaScriptCanOpenWindowsAutomatically = true
|
settings.builtInZoomControls = true
|
settings.useWideViewPort = false //将图片调整到适合webview的大小
|
settings.setSupportZoom(false) //支持缩放
|
settings.supportMultipleWindows() //多窗口
|
settings.loadWithOverviewMode = true // 页面支持缩放:
|
settings.useWideViewPort = true //设置此属性,可任意比例缩放
|
settings.defaultTextEncodingName = "utf-8"
|
settings.domStorageEnabled = true
|
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存
|
settings.allowFileAccess = true //设置可以访问文件
|
settings.setNeedInitialFocus(true) //当webview调用requestFocus时为webview设置节点
|
settings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
|
settings.loadsImagesAutomatically = true //支持自动加载图片
|
sc_content.isScrollContainer = false
|
sc_content.isScrollbarFadingEnabled = false
|
sc_content.scrollBarStyle = View.SCROLLBARS_OUTSIDE_OVERLAY
|
sc_content.webChromeClient = object : WebChromeClient() {}
|
val sHead =
|
"<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
|
sc_content.loadDataWithBaseURL(null, sHead + privacy, "text/html", "utf-8", null)
|
tv_cancel.setOnClickListener {
|
dismiss()
|
}
|
|
rg_title.setOnCheckedChangeListener { _, i ->
|
if (i == R.id.rb_privacy)
|
sc_content.loadDataWithBaseURL(null, sHead + privacy, "text/html", "utf-8", null)
|
else
|
sc_content.loadDataWithBaseURL(null, sHead + user, "text/html", "utf-8", null)
|
}
|
tv_ok.setOnClickListener {
|
CacheKey.putKeyStr("isAgreen", "1")
|
dismiss()
|
}
|
}
|
|
override fun onDismiss(dialog: DialogInterface) {
|
super.onDismiss(dialog)
|
dismissCallbak?.onDismiss()
|
}
|
|
|
|
interface OnDismiss{
|
fun onDismiss()
|
}
|
private var dismissCallbak:OnDismiss? = null
|
fun setDismissCallback(callback:OnDismiss){
|
this.dismissCallbak = callback
|
}
|
}
|