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