From f571288a24fcf10143dcc8015ffbbf38dbc0c614 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期一, 17 六月 2024 23:03:49 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 61 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
index 0b5efba..4535479 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
@@ -2,6 +2,7 @@
 
 import android.annotation.SuppressLint
 import android.os.Handler
+import android.os.Looper
 import android.os.Message
 import android.view.ViewGroup
 import androidx.core.os.bundleOf
@@ -14,15 +15,31 @@
 import com.dollearn.student.dialog.TipDialog
 import com.dollearn.student.network.HttpManager
 import com.dollearn.student.network.entity.SubjectBean
+import com.dollearn.student.network.request
 import com.dollearn.student.ui.TransparentStatusBarActivity
-import com.dollearn.student.utils.AudioUtils
 import kotlinx.android.synthetic.main.activity_listen.*
+import org.jetbrains.anko.startActivity
 
 class ListenActivity:TransparentStatusBarActivity() {
     override fun setContentView() = R.layout.activity_listen
 
+    private val day by lazy {
+        intent.getIntExtra("day",0)
+    }
+    private val week by lazy {
+        intent.getIntExtra("week",0)
+    }
+    private val season by lazy {
+        intent.getIntExtra("season",0)
+    }
     val data by lazy { intent.getParcelableExtra<SubjectBean>("data") }
-    private val fragments    = arrayListOf<Fragment>()
+    val fragments    = arrayListOf<Fragment>()
+    val viewPager by lazy { view_pager }
+
+    var totalCount = 0 //总答题次数
+    var rightCount = 0 //正确答题次数
+    var time = 0 //学习秒数
+    private var handler:Handler? = null
 
     override fun initClick() {
         tv_last.setOnClickListener {
@@ -38,9 +55,15 @@
     }
 
     fun next(){
-        (fragments[view_pager.currentItem+1] as ListenFragment).recover()
-        view_pager.setCurrentItem(view_pager.currentItem+1,true)
-        tv_last.visible()
+        if (view_pager.currentItem == fragments.lastIndex){
+            handler?.removeMessages(0)
+            ResultActivity.startResult(this,day,week,season,1,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
+            finish()
+        }else{
+            (fragments[view_pager.currentItem+1] as ListenFragment).recover()
+            view_pager.setCurrentItem(view_pager.currentItem+1,true)
+            tv_last.visible()
+        }
     }
 
     override fun initView() {
@@ -81,6 +104,25 @@
                 }
             })
         }
+        recover()
+        handler= object :Handler(Looper.myLooper()!!){
+            override fun handleMessage(msg: Message) {
+                super.handleMessage(msg)
+                if (msg.what == 0){
+                    time++
+                    handler?.sendEmptyMessageDelayed(0,1000L)
+                }
+            }
+        }
+        handler?.sendEmptyMessageDelayed(0,1000L)
+    }
+
+    private fun recover(){
+        HttpManager.teamSchedule(day,week,1).request(this){_,data->
+            view_pager.setCurrentItem(data?.topicIds?.size?:0,false)
+            totalCount = data?.answerNumber?:0
+            rightCount = data?.correctNumber?:0
+        }
     }
 
     override fun onBackPressed() {
@@ -88,7 +130,14 @@
         tipDialog.arguments = bundleOf("msg" to "未完成全部答题,确认退出吗?")
         tipDialog.setCallback(object :TipDialog.OnClickCallback{
             override fun onOk() {
-//                HttpManager.exitLearning()
+                if (view_pager.currentItem == 0)
+                    finish()
+                else{
+                    val list = (data?.subjectList?: arrayListOf()).flatMap { it }.subList(0,view_pager.currentItem)
+                    HttpManager.exitLearning(totalCount,rightCount,day,week,1,data?.data?.id?:"", list.joinToString(",") { it.id }).request(this@ListenActivity){_,_->
+                        finish()
+                    }
+                }
             }
 
             override fun onCancel() {
@@ -96,4 +145,10 @@
         })
         tipDialog.show(supportFragmentManager,"exit")
     }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        handler?.removeMessages(0)
+        handler = null
+    }
 }

--
Gitblit v1.7.1