lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package com.sinata.xqmuse.dialog
 
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 androidx.fragment.app.DialogFragment
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.screenWidth
import cn.sinata.xldutils.visible
import com.sinata.xqmuse.R
import com.sinata.xqmuse.utils.Const
import kotlinx.android.synthetic.main.dialog_user_rule.*
import org.jetbrains.anko.wrapContent
 
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 sHead by lazy {
        "<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>"
    }
    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.85).toInt(), wrapContent)
        dialog?.window?.setGravity(Gravity.CENTER)
        dialog?.setCanceledOnTouchOutside(false)
    }
 
 
 
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val settings = sc_content.settings
        settings.javaScriptEnabled = true
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.defaultTextEncodingName = "utf-8"
        settings.domStorageEnabled = true
        sc_content.webChromeClient = object : WebChromeClient() {}
        sc_content.loadDataWithBaseURL(
            null,
            sHead + user,
            "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
                )
                v_2.visible()
                v_1.gone()
            }
            else{
                sc_content.loadDataWithBaseURL(
                    null,
                    sHead + user,
                    "text/html",
                    "utf-8",
                    null
                )
                v_2.gone()
                v_1.visible()
            }
        }
        tv_ok.setOnClickListener {
            SPUtils.instance().put(Const.User.IS_AGREE,true).apply()
            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
    }
}