lmw
2024-06-18 1f45a54dc8e149548d3a61d1228741627aa4f23e
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
package com.dollearn.student.ui.course
 
import android.view.animation.AnimationUtils
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.invisible
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.CommonData
import com.dollearn.student.network.entity.JoinedCourse
import com.dollearn.student.network.request
import com.dollearn.student.ui.TransparentStatusBarActivity
import com.dollearn.student.ui.course.adapter.JoinedCourseAdapter
import com.dollearn.student.ui.home.adapter.FilterAdapter
import com.dollearn.student.utils.extention.clickDelay
import kotlinx.android.synthetic.main.activity_course.*
import org.jetbrains.anko.startActivityForResult
 
class MyCourseActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_course
 
    var type:Int? = null //运动营类型id
    var search:String? = null //搜索
    private val typeList = arrayListOf(CommonData(name = "全部"))
    private val filters = arrayListOf<String>() //筛选选项
    private val filterAdapter = FilterAdapter(filters)
 
    private val datas = arrayListOf<JoinedCourse>()
    private val adapter = JoinedCourseAdapter(datas)
 
    override fun initClick() {
        tv_search.clickDelay {
            val s = et_search.text.toString()
            search = if (s.isNullOrEmpty()) null else s
            refreshLayout.autoRefresh()
        }
        filterAdapter.setOnItemClickListener { view, position ->
            type = if (position == 0) null else typeList[position].id
            filterAdapter.checkedIndex = position
            filterAdapter.notifyDataSetChanged()
            cb_type.text = if (position == 0) "运动营类型" else typeList[position].name
            cb_type.isChecked = false
            refreshLayout.autoRefresh()
        }
        cb_type.setOnCheckedChangeListener { _, isChecked ->
            if (!isChecked)
                closeFilter()
            else{
                bg_filter.visible()
                rv_filter.visible()
                val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.popup_in_from_top)
                rv_filter.startAnimation(loadAnimation)
            }
        }
        bg_filter.setOnClickListener {
            cb_type.isChecked = false
        }
        adapter.setOnItemClickListener { view, position ->
            if (datas[position].payStatus == 1) //待支付,跳转支付详情页
                startActivityForResult<UnPayCourseDetailActivity>(1,"orderId" to datas[position].orderId,"id" to datas[position].coursePayId)
            else
                startActivityForResult<JoinedCourseDetailActivity>(1,"orderId" to datas[position].orderId,"id" to datas[position].coursePayId)
        }
    }
 
    override fun initView() {
        mtvybmcourse.gone()
        cb_shop.invisible()
        tv_sale.invisible()
        tv_distance.invisible()
        rv_course.layoutManager = LinearLayoutManager(this)
        rv_course.adapter = adapter
        refreshLayout.setOnRefreshListener {
            getData()
        }
        getData()
        //筛选
        rv_filter.layoutManager = LinearLayoutManager(this)
        rv_filter.adapter = filterAdapter
        //获取筛选项数据
        getType()
    }
 
    private fun getData(){
        HttpManager.registeredCourses(type, search).request(this,success = { _, data->
            refreshLayout.finishRefresh()
            datas.clear()
            datas.addAll(data?: arrayListOf())
            adapter.notifyDataSetChanged()
        }){_,_->
            refreshLayout.finishRefresh(false)
        }
    }
 
    private fun getType(){
        HttpManager.getCourseAppUserDetails().request(this){ _, data->
            typeList.addAll(data?: arrayListOf())
            filters.addAll(typeList.map { it.name })
            filterAdapter.notifyDataSetChanged()
        }
    }
 
    private fun closeFilter(){
        bg_filter.gone()
        rv_filter.gone()
    }
}