package com.sinata.xqmuse.ui.mine
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import com.flyco.tablayout.listener.CustomTabEntity
|
import com.flyco.tablayout.listener.OnTabSelectListener
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.Course
|
import com.sinata.xqmuse.network.entity.FilterItem
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.course.CourseDetailActivity
|
import com.sinata.xqmuse.ui.home.adapter.CourseAdapter
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import kotlinx.android.synthetic.main.activity_collected_course.*
|
import org.jetbrains.anko.startActivity
|
|
class CollectedCourseActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_collected_course
|
|
private var page = 1
|
var search:String? = null //搜索
|
|
private val course = arrayListOf<Course>()
|
private val courseAdapter = CourseAdapter(course)
|
private var part:String? = null //部位名称
|
|
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()
|
}
|
|
courseAdapter.setOnItemClickListener { view, position ->
|
startActivity<CourseDetailActivity>("id" to course[position].id)
|
}
|
}
|
|
override fun initView() {
|
getFilter()
|
rv_course.layoutManager = LinearLayoutManager(this)
|
rv_course.adapter = courseAdapter
|
refreshLayout.setOnRefreshListener {
|
val s = et_search.text.toString()
|
search = if (s.isNullOrEmpty()) null else s
|
page = 1
|
getData()
|
}
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
page = 1
|
getData()
|
}
|
|
private fun getFilter() {
|
HttpManager.getList().request(this){_, data->
|
val parts = data?.fitnessPosition ?: arrayListOf()
|
parts.add(0, FilterItem(0,"全部"))
|
val tabs = arrayListOf<CustomTabEntity>()
|
tabs.addAll(parts.map {
|
object :CustomTabEntity{
|
override fun getTabTitle() = it.name
|
|
override fun getTabSelectedIcon() = 0
|
|
override fun getTabUnselectedIcon() = 0
|
}
|
})
|
tab_bar.setTabData(tabs)
|
tab_bar.setOnTabSelectListener(object :OnTabSelectListener{
|
override fun onTabSelect(position: Int) {
|
part = if (position == 0) null else parts[position].name
|
refreshLayout.resetNoMoreData()
|
page = 1
|
getData()
|
}
|
|
override fun onTabReselect(position: Int) {
|
}
|
})
|
}
|
}
|
|
private fun getData(){
|
HttpManager.collectedCourse(page,part,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()
|
}){_,_->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
}
|
}
|
}
|