lmw
2025-02-06 ab2842d427504c531c79ddb9c5a9ef1df7833014
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
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.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
            mVideoView.setUrl(data?.videoUrl)
            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)
    }
}