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