package com.sinata.xqmuse.ui.mine
|
|
import android.app.Activity
|
import android.content.Intent
|
import androidx.core.os.bundleOf
|
import androidx.recyclerview.widget.GridLayoutManager
|
import cn.sinata.xldutils.fragment.BaseFragment
|
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.CourseBean
|
import com.sinata.xqmuse.network.requestByF
|
import com.sinata.xqmuse.ui.course.BuyCourseActivity
|
import com.sinata.xqmuse.ui.course.adapter.CourseGridAdapter
|
import com.sinata.xqmuse.ui.home.BuyVoiceActivity
|
import kotlinx.android.synthetic.main.layout_common_list.*
|
import org.jetbrains.anko.support.v4.startActivityForResult
|
|
class MineGridFragment : BaseFragment() {
|
override fun contentViewId() = R.layout.layout_common_list
|
|
private val type by lazy { arguments?.getInt("type",0)?:0 }
|
private var pType = 0
|
private var state = 0
|
private var page = 1
|
private val list = arrayListOf<CourseBean>()
|
private val adapter = CourseGridAdapter(list)
|
|
override fun onFirstVisibleToUser() {
|
pType = when(type){
|
COLLECTED_COURSE, COLLECTED_SAVE->WatchHisActivity.COLLECTED
|
HAS_BUY_VOICE, HAS_BUY_COURSE->{
|
adapter.isOrder = true
|
WatchHisActivity.HAS_BUY
|
}
|
else->WatchHisActivity.WATCH_HIS
|
}
|
state = when(type){
|
COLLECTED_COURSE, WATCH_HIS_COURSE , HAS_BUY_COURSE-> 2
|
COLLECTED_SAVE, WATCH_HIS_SAVE , HAS_BUY_VOICE->1
|
else->0
|
}
|
rv_list.layoutManager = GridLayoutManager(requireContext(),2)
|
rv_list.adapter = adapter
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
refreshLayout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
refreshLayout.autoRefresh()
|
adapter.setOnItemClickListener { _, position ->
|
val courseBean = list[position]
|
if (adapter.isOrder&&courseBean.paymentStatus == 1) {
|
HttpManager.payOrder(courseBean.id).requestByF(this){_,data->
|
if (type == HAS_BUY_COURSE)
|
startActivityForResult<BuyCourseActivity>(1,"isSend" to false,"fromDetail" to false,"data" to data)
|
else
|
startActivityForResult<BuyVoiceActivity>(1,"fromDetail" to false,"data" to data)
|
}
|
}else when(type){
|
WATCH_HIS_SAVE, COLLECTED_SAVE, HAS_BUY_VOICE->{
|
showDialog()
|
HttpManager.getMeditationDetails(courseBean.businessId?:"").requestByF(this,success = {_,data->
|
dismissDialog()
|
data?.goDetail(requireContext())
|
}){_,_->
|
dismissDialog()
|
}
|
}
|
WATCH_HIS_COURSE, COLLECTED_COURSE, HAS_BUY_COURSE->{
|
showDialog()
|
HttpManager.getPayCourseInfoById(courseBean.businessId?:"").requestByF(this,success = { _, data->
|
dismissDialog()
|
data?.goDetail(requireContext())
|
}){_,_->
|
dismissDialog()
|
}
|
}
|
}
|
}
|
}
|
|
private fun getData(){
|
HttpManager.lookHistory(pType,page,state).requestByF(this,success = { _, data->
|
if (page == 1)
|
list.clear()
|
list.addAll(data?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
tv_empty.gone()
|
if (list.isEmpty()){
|
refreshLayout.finishRefreshWithNoMoreData()
|
tv_empty.visible()
|
} 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)
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK)
|
refreshLayout.autoRefresh()
|
}
|
|
companion object{
|
const val WATCH_HIS_SAVE = 1 //疗愈观看历史
|
const val WATCH_HIS_COURSE = 2 //课程观看历史
|
const val COLLECTED_SAVE = 3 //收藏疗愈
|
const val COLLECTED_COURSE = 4 //收藏课程
|
const val HAS_BUY_COURSE = 5 //已购课程
|
const val HAS_BUY_VOICE = 6 //已购音频
|
fun newInstance(type:Int):MineGridFragment{
|
val mineGridFragment = MineGridFragment()
|
mineGridFragment.arguments = bundleOf("type" to type)
|
return mineGridFragment
|
}
|
}
|
}
|