| | |
| | | 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.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 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() |
| | | } |
| | | } |
| | | |
| | | |
| | | 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_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() } |
| | | |
| | | } |
| | | |
| | | @Subscribe |
| | | fun refresh(e: EmptyEvent){ |
| | | if (e.code == Const.EventCode.REFRESH_MY_COURSE){ |
| | | refreshLayout.resetNoMoreData() |
| | | page = 1 |
| | | getData() |
| | | 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() |
| | | } |
| | | }){_,_-> |
| | | refreshLayout.finishRefresh(false) |
| | | } |
| | | } |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | EventBus.getDefault().unregister(this) |
| | | } |
| | | |
| | | } |