From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期四, 24 四月 2025 10:45:55 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt |   72 ++++++++++++++++++++++++++++++++---
 1 files changed, 65 insertions(+), 7 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
index 079c1b9..024fe1e 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
@@ -4,14 +4,23 @@
 import android.webkit.WebSettings
 import android.webkit.WebViewClient
 import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.LinearLayoutManager
 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
@@ -20,6 +29,10 @@
     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
@@ -32,21 +45,66 @@
         settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
         webView.webChromeClient = object : WebChromeClient() {}
         webView.webViewClient = object : WebViewClient() {}
-        rv_course.layoutManager = GridLayoutManager(requireContext(),2)
+        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->
-            mVideoView.setUrl(data?.videoUrl)
-            mVideoView.start()
+        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)
+            webView!!.loadDataWithBaseURL(
+                null,
+                sHead + data?.tutorIntroduction,
+                "text/html",
+                "utf-8",
+                null
+            )
             list.clear()
-            list.addAll(data?.list?: arrayListOf())
+            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)
+    }
 }

--
Gitblit v1.7.1