package com.sinata.xqmuse.ui.course
|
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.entity.TrainInfo
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.home.VideoDetailActivity
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.cache.PreloadManager
|
import com.sinata.xqmuse.utils.event.InfoEvent
|
import kotlinx.android.synthetic.main.activity_preload.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.startActivity
|
|
class PreLoadActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_preload
|
|
private val course by lazy { intent.getParcelableExtra<TrainInfo>("course") }
|
private val preloaded = arrayListOf<String>()
|
|
override fun initClick() {
|
}
|
|
override fun initView() {
|
EventBus.getDefault().register(this)
|
mProgressBar.max = course?.videos?.take(5)?.size?:100
|
course?.videos?.take(5)?.forEachIndexed { index, videoBean ->
|
PreloadManager.getInstance(this).addPreloadTask(videoBean.courseVideo, index)
|
}
|
}
|
|
@Subscribe
|
fun preloaded(e:InfoEvent){
|
if (e.code == Const.EventCode.PRELOADED){
|
runOnUiThread {
|
val list = course?.videos?.map { it.courseVideo } ?: arrayListOf()
|
if (e.info in list&&e.info !in preloaded){
|
preloaded.add(e.info)
|
mProgressBar.progress = preloaded.size
|
tv_progress.text = "${preloaded.size*100/mProgressBar.max}%"
|
if (preloaded.size == minOf(list.size,5)){
|
tv_progress.text = "100%"
|
startActivity<VideoDetailActivity>("course" to course)
|
finish()
|
}
|
}
|
}
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|