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)
|
}
|
}
|