package com.sinata.xqmuse.ui.course
|
|
import android.annotation.SuppressLint
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.*
|
import cn.sinata.xldutils.visible
|
import com.github.zackratos.ultimatebar.UltimateBar
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.RiskDialog
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.Course
|
import com.sinata.xqmuse.network.entity.CourseDetail
|
import com.sinata.xqmuse.network.entity.VideoBean
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.course.adapter.RecommendAdapter
|
import com.sinata.xqmuse.ui.course.adapter.VideoNameAdapter
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_course_deatil.*
|
import org.jetbrains.anko.imageResource
|
import org.jetbrains.anko.startActivity
|
|
class CourseDetailActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_course_deatil
|
|
private val id by lazy { intent.getStringExtra("id")?:"" }
|
|
private var course: CourseDetail? = null
|
|
private val videoList = arrayListOf<VideoBean>()
|
private val videoAdapter = VideoNameAdapter(videoList)
|
|
private val courseList = arrayListOf<Course>()
|
private val courseAdapter = RecommendAdapter(courseList)
|
|
|
override fun initClick() {
|
iv_back.setOnClickListener { finish() }
|
courseAdapter.setOnItemClickListener { view, position ->
|
startActivity<CourseDetailActivity>("id" to courseList[position].id)
|
}
|
tv_action.setOnClickListener {
|
startActivity<JoinCourseActivity>("id" to id)
|
}
|
iv_collected.setOnClickListener {
|
iv_collected.isEnabled = false
|
HttpManager.collectCourse(id).request(this,success = {_,data->
|
iv_collected.isEnabled = true
|
course?.isCollect = if (course?.isCollect == "1") "0" else "1"
|
iv_collected.imageResource = if (course?.isCollect == "1") R.mipmap.star_red else R.mipmap.star_empty
|
}){_,_->
|
iv_collected.isEnabled = true
|
}
|
}
|
tv_start.clickDelay {
|
HttpManager.riskInfo().request(this){_,data->
|
if (data?.state == 1){
|
RiskDialog.show(supportFragmentManager,data.riskInfo,object :StringCallback{
|
override fun onResult(rst: String) {
|
startVideo()
|
}
|
})
|
}else
|
startVideo()
|
}
|
}
|
}
|
|
override fun initView() {
|
UltimateBar.with(this)
|
.statusDark(false)
|
.create().immersionBar() //沉浸状态栏
|
titleBar.gone()
|
rv_list.layoutManager = LinearLayoutManager(this)
|
rv_list.adapter = videoAdapter
|
rv_course.layoutManager = LinearLayoutManager(this)
|
rv_course.adapter = courseAdapter
|
getDetail()
|
}
|
|
private fun startVideo(){
|
showDialog()
|
HttpManager.startTrain(id).request(this){_,data->
|
startActivity<PreLoadActivity>("course" to data)
|
// startActivity<VideoDetailActivity>("course" to data)
|
}
|
}
|
|
@SuppressLint("SetTextI18n")
|
private fun getDetail() {
|
HttpManager.queryCourseInfo(id)
|
.request(this) { _, data ->
|
course = data
|
data?.apply {
|
banner.setImageURI(coverImg)
|
tv_name.text = courseName
|
iv_collected.imageResource = if (isCollect == "1") R.mipmap.star_red else R.mipmap.star_empty
|
tv_time.text = "${time}|H${difficulty}"
|
tv_type.text = typeName
|
tv_info.text = introduce
|
|
if (isFree == 1||isBuy == 1){
|
tv_start.visible()
|
}else{
|
tv_tip.visible()
|
tv_tip.text = "购买后“${typeName}”相关课程均可查看;\n长期有效,我们将持续为您更新。"
|
ll_bottom_1.visible()
|
tv_price.text = SpanBuilder("¥%.2f".format(price.toDouble())).size(0,1,18).build()
|
}
|
videoList.clear()
|
videoList.addAll(videos)
|
videoAdapter.notifyDataSetChanged()
|
|
courseList.clear()
|
courseList.addAll(recommendCourse)
|
courseAdapter.notifyDataSetChanged()
|
if (courseList.isNullOrEmpty())
|
tv_2.gone()
|
}
|
}
|
}
|
|
}
|