package com.dollearn.student.ui.home
|
|
import android.util.Log
|
import android.widget.SeekBar
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.visible
|
import com.dueeeke.videocontroller.StandardVideoController
|
import com.dueeeke.videocontroller.component.*
|
import com.dueeeke.videoplayer.player.VideoView
|
import com.dollearn.student.R
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.loadLongImage
|
import com.dollearn.student.utils.glide.GlideUtil
|
import kotlinx.android.synthetic.main.activity_video_detail.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.backgroundResource
|
import org.jetbrains.anko.textColorResource
|
|
class VideoDetailActivity : TransparentStatusBarActivity(), VideoView.OnStateChangeListener {
|
override fun setContentView() = R.layout.activity_video_detail
|
|
private val type by lazy { intent.getIntExtra("type", VideoHomeActivity.TYPE_COURSE) }
|
private val id by lazy { intent.getStringExtra("id")?:"" }
|
private val courseId by lazy { intent.getStringExtra("courseId")?:"" }
|
private val scId by lazy { intent.getStringExtra("scId")?:"" }
|
private var videoTitle = ""
|
|
private val mController by lazy {
|
StandardVideoController(this).apply {
|
val titleView = object : TitleView(this@VideoDetailActivity){}
|
titleView.setTitle(videoTitle)
|
val vCV = object : VodControlView(this@VideoDetailActivity) {}
|
vCV.findViewById<SeekBar>(R.id.seekBar).setOnTouchListener { v, event ->
|
return@setOnTouchListener true
|
}
|
addControlComponent(object : CompleteView(this@VideoDetailActivity){},
|
object : ErrorView(this@VideoDetailActivity){},object : PrepareView(this@VideoDetailActivity){},
|
titleView,object : GestureView(this@VideoDetailActivity){}, vCV
|
)
|
}
|
}
|
|
override fun initClick() {
|
iv_play.setOnClickListener {
|
mVideoView.start()
|
iv_cover.gone()
|
iv_play.gone()
|
}
|
}
|
|
override fun initView() {
|
title = if (type == VideoHomeActivity.TYPE_PRACTICE){
|
tv_course.visible()
|
"课后练习"
|
} else if (type == VideoHomeActivity.TYPE_COURSE) "线上课得积分" else "看视频得奖励"
|
getData()
|
}
|
|
private fun getData(){
|
if (type == VideoHomeActivity.TYPE_PRACTICE)
|
HttpManager.afterSourceDetail(id,courseId,scId).request(this){_,data->
|
data?.apply {
|
videoTitle = videoName
|
tv_name.text = data.videoName
|
tv_introduce.text = data.synopsis
|
tv_score.text = "${data.integral}积分"
|
tv_state.text = if (data.studyStatus == 2){
|
tv_state.textColorResource = R.color.colorDeepGreen
|
tv_state.backgroundResource = R.drawable.bg_green_1dp
|
"已学习"
|
}else{
|
tv_state.textColorResource = R.color.colorYellow
|
tv_state.backgroundResource = R.drawable.bg_orange_1dp
|
"未学习"
|
}
|
if (!detailedDiagram.isNullOrEmpty()){
|
detailedDiagram.loadLongImage(this@VideoDetailActivity,iv_detail)
|
}
|
GlideUtil.load(this@VideoDetailActivity,videoURL,iv_cover,0)
|
mVideoView.setUrl(videoURL)
|
tv_course.text ="布置运动营:${packageName}"
|
mVideoView.setVideoController(mController)
|
mVideoView.setOnStateChangeListener(this@VideoDetailActivity)
|
}
|
} else
|
HttpManager.queryBenefitsVideosInfo(id).request(this){_,data->
|
data?.apply {
|
videoTitle = name
|
tv_name.text = data.name
|
tv_introduce.text = data.introduce
|
tv_score.text = "${data.integral}积分"
|
tv_state.text = if (data.study == 1){
|
tv_state.textColorResource = R.color.colorDeepGreen
|
tv_state.backgroundResource = R.drawable.bg_green_1dp
|
"已学习"
|
}else{
|
tv_state.textColorResource = R.color.colorYellow
|
tv_state.backgroundResource = R.drawable.bg_orange_1dp
|
"未学习"
|
}
|
if (!introductionDrawing.isNullOrEmpty()){
|
introductionDrawing.loadLongImage(this@VideoDetailActivity,iv_detail)
|
}
|
GlideUtil.load(this@VideoDetailActivity,courseVideo,iv_cover,0)
|
mVideoView.setUrl(courseVideo)
|
mVideoView.setVideoController(mController)
|
mVideoView.setOnStateChangeListener(this@VideoDetailActivity)
|
}
|
}
|
}
|
|
override fun onPlayerStateChanged(playerState: Int) {
|
|
}
|
|
override fun onPlayStateChanged(playState: Int) {
|
when(playState){
|
VideoView.STATE_PREPARED->{
|
Log.e("Video playState","视频准备就绪")
|
}
|
|
VideoView.STATE_PLAYBACK_COMPLETED->{ //播放结束,领取奖励
|
iv_cover.visible()
|
iv_play.visible()
|
if (tv_state.text == "未学习")
|
if (type == VideoHomeActivity.TYPE_PRACTICE)
|
HttpManager.updateVideoStatus(id,courseId, scId).request(this){_,data->
|
tv_state.textColorResource = R.color.colorDeepGreen
|
tv_state.backgroundResource = R.drawable.bg_green_1dp
|
tv_state.text = "已学习"
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_USER)) //积分刷新
|
}
|
else
|
HttpManager.receiveAward(id).request(this){_,data->
|
myToast("奖励领取成功")
|
tv_state.textColorResource = R.color.colorDeepGreen
|
tv_state.backgroundResource = R.drawable.bg_green_1dp
|
tv_state.text = "已学习"
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_USER)) //积分刷新
|
}
|
}
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
if (mVideoView != null) {
|
mVideoView.release()
|
mVideoView.removeOnStateChangeListener(this)
|
}
|
}
|
}
|