package com.dollearn.student.ui.worldcup
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.fragment.BaseFragment
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.ChooseYearDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.WorldRank
|
import com.dollearn.student.network.requestByF
|
import com.dollearn.student.ui.worldcup.adapter.WorldRankAdapter
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.fragment_world_rank.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
|
class WorldRankFragment:BaseFragment() {
|
override fun contentViewId() = R.layout.fragment_world_rank
|
|
private val list = arrayListOf<WorldRank>()
|
private val adapter = WorldRankAdapter(list)
|
|
private var sort = 2 //排序,1=场次,2=胜率
|
private var year:Int? = null
|
|
private val rb_city by lazy {
|
(requireActivity() as MyWorldActivity).rbCity
|
}
|
private val rb_country by lazy {
|
(requireActivity() as MyWorldActivity).rbCountry
|
}
|
|
override fun onFirstVisibleToUser() {
|
EventBus.getDefault().register(this)
|
// rb_city.text = (requireActivity() as MyWorldActivity).cityName
|
// rb_city.isSelected = true
|
rv_list.layoutManager = LinearLayoutManager(requireContext())
|
rv_list.adapter = adapter
|
refreshLayout.setOnRefreshListener {
|
getData()
|
}
|
getData()
|
|
tv_filter.setOnClickListener {
|
if (refreshLayout.isRefreshing)
|
myToast("等待刷新")
|
else{
|
sort = if (sort == 1) 2 else 1
|
tv_filter.text = if (sort == 1) "按场次排名" else "按胜率排名"
|
refreshLayout.autoRefresh()
|
}
|
}
|
|
tv_year.clickDelay {
|
val chooseYearDialog = ChooseYearDialog()
|
chooseYearDialog.callback = object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_year.text = rst
|
if (rst == "全部")
|
year = null
|
else{
|
year = rst.substring(0,4).toInt()
|
}
|
refreshLayout.autoRefresh()
|
}
|
}
|
chooseYearDialog.showAllowingStateLoss(childFragmentManager,"rankYear")
|
}
|
|
rb_city.setOnClickListener {
|
if (refreshLayout.isRefreshing)
|
myToast("等待刷新")
|
else{
|
rb_city.isSelected = true
|
rb_country.isSelected = false
|
refreshLayout.autoRefresh()
|
}
|
}
|
|
rb_country.setOnClickListener {
|
if (refreshLayout.isRefreshing)
|
myToast("等待刷新")
|
else{
|
rb_city.isSelected = false
|
rb_country.isSelected = true
|
refreshLayout.autoRefresh()
|
}
|
}
|
}
|
|
private fun getData() {
|
val myWorldActivity = requireActivity() as MyWorldActivity
|
val radius = if (rb_city.isSelected) 2 else 1
|
HttpManager.getWorldCupRank(myWorldActivity.stu?.id?:"",myWorldActivity.stu?.isStudent?:0,radius,sort,year)
|
.requestByF(this, success = { _, data ->
|
list.clear()
|
list.addAll(data?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
refreshLayout.finishRefresh()
|
myWorldActivity.mineRank = data?.filter { it.oneself == 1 }?.firstOrNull()
|
myWorldActivity.showMineRank()
|
}) { _, _ ->
|
refreshLayout.finishRefresh(false)
|
}
|
}
|
|
@Subscribe
|
fun refreshList(e: EmptyEvent){
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|