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
110
package com.sinata.xqmuse.ui.course
 
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
import androidx.recyclerview.widget.GridLayoutManager
import cn.sinata.xldutils.fragment.BaseFragment
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.CourseBean
import com.sinata.xqmuse.network.requestByF
import com.sinata.xqmuse.ui.course.adapter.CourseGridAdapter
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.cache.ProxyVideoCacheManager
import com.sinata.xqmuse.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.fragment_teacher.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.jetbrains.anko.backgroundColor
import xyz.doikki.videocontroller.StandardVideoController
 
class TeacherFragment : BaseFragment() {
    override fun contentViewId() = R.layout.fragment_teacher
 
    private val list = arrayListOf<CourseBean>()
    private val adapter = CourseGridAdapter(list)
 
    override fun onFirstVisibleToUser() {
        val controller = StandardVideoController(requireContext())
        controller.addDefaultControlComponent("", false)
        mVideoView.setVideoController(controller) //设置控制器
 
        val settings = webView.settings
        settings.javaScriptEnabled = true
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.defaultTextEncodingName = "utf-8"
        settings.domStorageEnabled = true
        settings.setSupportZoom(true)
//        settings.textZoom = 200
        settings.useWideViewPort = true
        settings.loadWithOverviewMode = true
        settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
        webView.webChromeClient = object : WebChromeClient() {}
        webView.webViewClient = object : WebViewClient() {}
        webView.backgroundColor = 0
        webView.background.alpha = 0
        rv_course.layoutManager = GridLayoutManager(requireContext(), 2)
        rv_course.adapter = adapter
        getData()
        adapter.setOnItemClickListener { view, position ->
            showDialog()
            HttpManager.getPayCourseInfoById(list[position].id).requestByF(
                this,
                success = { _, data ->
                    dismissDialog()
                    data?.goDetail(requireContext())
                }){ _, _->
                dismissDialog()
            }
        }
        iv_play_teacher.setOnClickListener {
            iv_cover.gone()
            iv_play_teacher.gone()
            mVideoView.start()
        }
        EventBus.getDefault().register(this)
    }
 
    private fun getData(){
        HttpManager.getCoursePageList().requestByF(this){ _, data->
            (requireActivity() as MainActivity).teacherVideoView = mVideoView
            val cacheServer = ProxyVideoCacheManager.getProxy(context)
            val proxyUrl = cacheServer.getProxyUrl(data?.videoUrl)
            mVideoView.setUrl(proxyUrl)
            iv_cover.setImageURI(data?.coverUrl)
            iv_play_teacher.visible()
            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>"
            webView!!.loadDataWithBaseURL(
                null,
                sHead + data?.tutorIntroduction,
                "text/html",
                "utf-8",
                null
            )
            list.clear()
            list.addAll(data?.list ?: arrayListOf())
            adapter.notifyDataSetChanged()
        }
    }
 
    @Subscribe
    fun pause(e: EmptyEvent){
        if (e.code == Const.EventCode.PAUSE_TEACHER_VIDEO)
            mVideoView.pause()
    }
 
    override fun onPause() {
        super.onPause()
        mVideoView.pause()
    }
 
    override fun onDestroy() {
        super.onDestroy()
        EventBus.getDefault().unregister(this)
    }
}