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/MyCourseActivity.kt |  143 +++++++++++++++++++----------------------------
 1 files changed, 58 insertions(+), 85 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
index 674919d..da518e8 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
@@ -1,121 +1,94 @@
 package com.sinata.xqmuse.ui.course
 
-import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.GridLayoutManager
+import cn.sinata.xldutils.gone
+import cn.sinata.xldutils.visible
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.network.HttpManager
 import com.sinata.xqmuse.network.entity.*
 import com.sinata.xqmuse.network.request
 import com.sinata.xqmuse.ui.TransparentStatusBarActivity
-import com.sinata.xqmuse.ui.course.adapter.FilterAdapter
-import com.sinata.xqmuse.ui.home.adapter.CourseAdapter
+import com.sinata.xqmuse.ui.course.adapter.CourseGridAdapter
 import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.event.EmptyEvent
-import com.sinata.xqmuse.utils.extention.clickDelay
 import kotlinx.android.synthetic.main.activity_my_course.*
 import org.greenrobot.eventbus.EventBus
-import org.greenrobot.eventbus.Subscribe
 import org.jetbrains.anko.startActivity
 
 class MyCourseActivity : TransparentStatusBarActivity() {
     override fun setContentView() = R.layout.activity_my_course
 
-    private var page = 1
-    var search:String? = null //搜索
-    private val filterList = arrayListOf<Filter>()
-    private val filterAdapter = FilterAdapter(filterList,true)
-
-    private val course = arrayListOf<Course>()
-    private val courseAdapter = CourseAdapter(course)
+    private val myList = arrayListOf<CourseBean>()
+    private val myAdapter = CourseGridAdapter(myList)
+    private val freeList = arrayListOf<CourseBean>()
+    private val freeAdapter = CourseGridAdapter(freeList)
 
     override fun initClick() {
-        tv_search.clickDelay {
-            val s = et_search.text.toString()
-            search = if (s.isNullOrEmpty()) null else s
-            hideInputMethod()
-            refreshLayout.resetNoMoreData()
-            page = 1
-            getData()
+        myAdapter.setOnItemClickListener { _, position ->
+            showDialog()
+            HttpManager.getPayCourseInfoById(myList[position].id).request(this,success = { _, data->
+                dismissDialog()
+                data?.goDetail(this)
+            }){_,_->
+                dismissDialog()
+            }
         }
-
-        courseAdapter.setOnItemClickListener { view, position ->
-            startActivity<CourseDetailActivity>("id" to course[position].id)
+        freeAdapter.setOnItemClickListener { _, position ->
+            showDialog()
+            HttpManager.getPayCourseInfoById(freeList[position].id).request(this,success = { _, data->
+                dismissDialog()
+                data?.goDetail(this)
+            }){_,_->
+                dismissDialog()
+            }
+        }
+        tv_ask.setOnClickListener {
+            startActivity<HelpCenterActivity>()
+        }
+        tv_action.setOnClickListener {
+            EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_COURSE))
+            finish()
         }
     }
 
     override fun initView() {
-        EventBus.getDefault().register(this)
-        rv_filter.layoutManager = LinearLayoutManager(this)
-        rv_filter.adapter = filterAdapter
-        rv_course.layoutManager = LinearLayoutManager(this)
-        rv_course.adapter = courseAdapter
+        rv_free.layoutManager = GridLayoutManager(this,2)
+        rv_free.adapter = freeAdapter
+        rv_my.layoutManager = GridLayoutManager(this,2)
+        rv_my.adapter = myAdapter
+        myAdapter.isOrder = true
 
         refreshLayout.setOnRefreshListener {
-            val s = et_search.text.toString()
-            search = if (s.isNullOrEmpty()) null else s
-            page = 1
             getData()
         }
-        refreshLayout.setOnLoadMoreListener {
-            page++
-            getData()
-        }
-        getFilter()
-        page = 1
+        refreshLayout.setEnableLoadMore(false)
         getData()
-
     }
 
-    private fun getFilter() {
-        HttpManager.getList().request(this){_, data->
-            filterList.clear()
-            filterList.add(Filter("类型:",data?.fitnessType?: arrayListOf()))
-            filterList.add(Filter("部位:",data?.fitnessPosition?: arrayListOf()))
-            filterList.add(Filter("难度:",data?.difficulty?: arrayListOf()))
-            filterList.add(Filter("时长:",data?.time?: arrayListOf()))
-            filterAdapter.notifyDataSetChanged()
-        }
-    }
 
     private fun getData(){
-        val diff = filterList.filter { it.name == "难度:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() }
-        val position = filterList.filter { it.name == "部位:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.name }
-        val times = filterList.filter { it.name == "时长:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() }
-        val types = filterList.filter { it.name == "类型:" }.firstOrNull()?.list?.filter { it.checked }?.joinToString (","){ it.id.toString() }
-        HttpManager.myCourse(page,if (diff.isNullOrEmpty()) null else diff,
-            if (position.isNullOrEmpty()) null else position,if (times.isNullOrEmpty()) null else times,
-            if (types.isNullOrEmpty()) null else types,search).request(this,success = {_,data->
-            if (page == 1)
-                course.clear()
-            course.addAll(data?: arrayListOf())
-            courseAdapter.notifyDataSetChanged()
-            if (course.isEmpty())
-                refreshLayout.finishRefreshWithNoMoreData()
-            else if (data.isNullOrEmpty())
-                refreshLayout.finishLoadMoreWithNoMoreData()
-            else if (page == 1)
-                refreshLayout.finishRefresh()
-            else
-                refreshLayout.finishLoadMore()
+        HttpManager.studyPage().request(this,success = {_,data->
+            refreshLayout.finishRefresh(true)
+            myList.clear()
+            myList.addAll(data?.courseList?: arrayListOf())
+            freeList.clear()
+            freeList.addAll(data?.freeCourseList?: arrayListOf())
+            myAdapter.notifyDataSetChanged()
+            freeAdapter.notifyDataSetChanged()
+            if (myList.isNullOrEmpty()){
+                tv_empty.visible()
+                tv_action.visible()
+            }else{
+                tv_empty.gone()
+                tv_action.gone()
+            }
+            if (freeList.isNullOrEmpty()){
+                tv_empty2.visible()
+            }else{
+                tv_empty2.gone()
+            }
         }){_,_->
-            if (page == 1)
-                refreshLayout.finishRefresh(false)
-            else
-                refreshLayout.finishLoadMore(false)
+            refreshLayout.finishRefresh(false)
         }
     }
-
-    @Subscribe
-    fun refresh(e: EmptyEvent){
-        if (e.code == Const.EventCode.REFRESH_MY_COURSE){
-            refreshLayout.resetNoMoreData()
-            page = 1
-            getData()
-        }
-    }
-
-    override fun onDestroy() {
-        super.onDestroy()
-        EventBus.getDefault().unregister(this)
-    }
-
 }

--
Gitblit v1.7.1