lmw
2024-09-25 92778728b83ce1a34ba21bcdb061afdeca16cce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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)
        }
    }
}