| | |
| | | |
| | | 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 |
| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | 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() { |
| | |
| | | } |
| | | }) |
| | | } |
| | | 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() { |
| | |
| | | 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() { |
| | |
| | | }) |
| | | tipDialog.show(supportFragmentManager,"exit") |
| | | } |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | handler?.removeMessages(0) |
| | | handler = null |
| | | } |
| | | } |