lmw
2024-07-09 b13afc751dbbce24753d008f1f87d2c5e133a4ad
app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt
@@ -10,6 +10,7 @@
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
@@ -41,30 +42,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 +79,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 +130,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() {