From 442124baa483f8d1c4aaca7ff81e15dd3f122363 Mon Sep 17 00:00:00 2001
From: 罗明文 <125975490@qq.com>
Date: 星期四, 22 五月 2025 13:14:36 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt
index 7c09c84..e05bcef 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/ListenStoryActivity.kt
+++ b/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))
     }
 }

--
Gitblit v1.7.1