罗明文
22 小时以前 442124baa483f8d1c4aaca7ff81e15dd3f122363
app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt
@@ -10,13 +10,17 @@
import androidx.fragment.app.FragmentPagerAdapter
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import com.dollearn.student.R
import com.dollearn.student.dialog.TipDialog
import com.dollearn.student.network.HttpManager
import com.dollearn.student.network.entity.StoryBean
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 kotlinx.android.synthetic.main.activity_listen_stroy.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
class ListenStoryActivity:TransparentStatusBarActivity() {
@@ -41,30 +45,35 @@
    override fun initClick() {
        tv_last.setOnClickListener {
            (fragments[view_pager.currentItem] as RememberFragment).stopVoice()
            if ((fragments[view_pager.currentItem] as RememberFragment).playing||!(fragments[view_pager.currentItem] as RememberFragment).listened)
                return@setOnClickListener
            (fragments[view_pager.currentItem-1] as RememberFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem-1,true)
            if (view_pager.currentItem == 0)
                tv_last.gone()
            tv_exit.text = "退出"
            tv_next.visible()
        }
        tv_next.setOnClickListener {
            (fragments[view_pager.currentItem] as RememberFragment).stopVoice()
            if ((fragments[view_pager.currentItem] as RememberFragment).playing||!(fragments[view_pager.currentItem] as RememberFragment).listened)
                return@setOnClickListener
            (fragments[view_pager.currentItem+1] as RememberFragment).recover()
            view_pager.setCurrentItem(view_pager.currentItem+1,true)
            if (view_pager.currentItem == fragments.lastIndex){
                tv_next.gone()
                tv_exit.text = "完成"
            }
            tv_last.visible()
        }
        tv_exit.setOnClickListener {
            if (tv_exit.text == "退出")
                onBackPressed()
            else{
                (fragments[view_pager.currentItem] as RememberFragment).stopVoice()
                if ((fragments[view_pager.currentItem] as RememberFragment).playing||!(fragments[view_pager.currentItem] as RememberFragment).listened)
                   return@setOnClickListener
                handler?.removeMessages(0)
                startActivity<RememberFinishActivity>("score" to data!!.data.integral)
                startActivity<RememberFinishActivity>("score" to data!!.data.integral,"time" to time,"id" to data!!.data.id)
                finish()
            }
        }
@@ -73,6 +82,10 @@
    override fun initView() {
        data?.apply {
            tv_progress.text = "已完成:1/${storyList.size}"
            if (storyList.size == 1){
                tv_next.gone()
                tv_exit.text = "完成"
            }
            storyList.forEachIndexed { index, subject ->
                fragments.add(RememberFragment.getInstance(index))
            }
@@ -120,20 +133,14 @@
        handler?.sendEmptyMessageDelayed(0,1000L)
    }
    private fun recover(){
        HttpManager.teamSchedule(day,week,3).request(this){_,data->
            view_pager.setCurrentItem(data?.topicIds?.size?:0,false)
            totalCount = data?.answerNumber?:0
            rightCount = data?.correctNumber?:0
        }
    }
    override fun onBackPressed() {
        val tipDialog = TipDialog()
        tipDialog.arguments = bundleOf("msg" to "未完成全部答题,确认退出吗?")
        tipDialog.setCallback(object :TipDialog.OnClickCallback{
            override fun onOk() {
                finish()
                HttpManager.exitGameOrStory(time).request(this@ListenStoryActivity){_,_->
                    finish()
                }
            }
            override fun onCancel() {
@@ -146,5 +153,6 @@
        super.onDestroy()
        handler?.removeMessages(0)
        handler = null
        EventBus.getDefault().post(EmptyEvent(Const.EventCode.STOP_TIMER))
    }
}