From a036ac0c6c8d87f36e68f88f05231c3be23fcc4b Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期四, 01 八月 2024 13:32:55 +0800
Subject: [PATCH] 修改bug

---
 app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt |  685 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 473 insertions(+), 212 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt
index c7e7288..8512d34 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt
@@ -4,19 +4,24 @@
 import android.os.Looper
 import android.os.Message
 import android.util.Log
+import android.view.View
 import androidx.constraintlayout.motion.widget.MotionLayout
 import androidx.core.os.bundleOf
 import cn.sinata.xldutils.fragment.BaseFragment
 import cn.sinata.xldutils.gone
+import cn.sinata.xldutils.utils.SPUtils
 import cn.sinata.xldutils.utils.myToast
 import cn.sinata.xldutils.visible
 import com.dollearn.student.R
 import com.dollearn.student.utils.AudioUtils
+import com.dollearn.student.utils.Const
 import com.dollearn.student.utils.extention.clickDelay
-import kotlinx.android.synthetic.main.fragment_include.*
+import kotlinx.android.synthetic.main.fragment_match.*
+import org.jetbrains.anko.imageResource
+
 
 class MatchFragment : BaseFragment(), AudioUtils.OnAudioStatusUpdateListener {
-    override fun contentViewId() = R.layout.fragment_include
+    override fun contentViewId() = R.layout.fragment_match
 
     private val TAG = "Match=======》"
 
@@ -24,20 +29,32 @@
     private val PLAY_VOICE = 1
     private val TO_NEXT = 2
 
+    private val PLAY_ERROR = 3
+    private val PLAY_RIGHT = 4
+
+    private val errorVoice by lazy { SPUtils.instance().getString(Const.EV) }
+    private val rightVoice by lazy { SPUtils.instance().getString(Const.RV) }
+
+    private var rightPlaying = false
+    private var errorPlaying = false
+
     private val player by lazy { AudioUtils() }
     private val group by lazy { arguments?.getInt("group")?:0 }
     private val data by lazy {
-        (requireActivity() as IncludeActivity).data
+        (requireActivity() as MatchActivity).data
     }
 
-    private val act by lazy { requireActivity() as IncludeActivity }
+    private val act by lazy { requireActivity() as MatchActivity }
 
-    private var voiceIndex = -1 //点击播放的声音序号 0-5取值
-    private val voiceViews by lazy { arrayListOf(cl_voice1,cl_voice2,cl_voice3,cl_voice4,cl_voice5,cl_voice6) }
+    private val voiceViews by lazy { arrayListOf(cl_voice_1,cl_voice_2,cl_voice_3,cl_voice_4) }
     private var playing = false
+    private val voiceList = arrayListOf<String>() //语音列表,随机排序
+    private var voiceIndex = -1 //点击播放的声音序号 0-3取值
 
-    private val answerImg = arrayListOf<String>() //随机答案图片
-    private var currentImage = 0 //当前作答的题号:2,4,5
+    private var nowVoiceView: View? = null
+    private var imgPosition = -1
+
+    private val completedVoice = arrayListOf<String>() //已经选了的音频 飞到图片上了
 
     override fun onFirstVisibleToUser() {
         player.setOnAudioStatusUpdateListener(this)
@@ -47,216 +64,402 @@
                 super.handleMessage(msg)
                 when(msg.what){
                     PLAY_VOICE->{
-                        player.startPlayMusic(requireContext(),data!!.subjectList[group][voiceIndex].correct)
+                        player.startPlayMusic(requireContext(),voiceList[voiceIndex])
                     }
                     TO_NEXT->{
                         if (isAdded&&!playing){
-                            (requireActivity() as IncludeActivity).next()
+                            (requireActivity() as MatchActivity).next()
                         }
+                    }
+                    PLAY_RIGHT->{
+                        rightPlaying = true
+                        player.startPlayMusic(requireContext(),rightVoice)
+                    }
+                    PLAY_ERROR->{
+                        voiceIndex = -1
+                        errorPlaying = true
+                        player.startPlayMusic(requireContext(),errorVoice)
                     }
                 }
             }
         }
         data?.apply {
-            val originList = subjectList[group]
-            iv_1.setImageURI(originList[0].img)
-            iv_2.setImageURI(originList[1].img)
-            iv_4.setImageURI(originList[3].img)
-            answerImg.clear()
-            answerImg.add(originList[2].img)
-            answerImg.add(originList[4].img)
-            answerImg.add(originList[5].img)
+            val imgs = subjectList[group]
+            iv_1.setImageURI(imgs[0].img)
+            iv_2.setImageURI(imgs[1].img)
+            iv_3.setImageURI(imgs[2].img)
+            iv_4.setImageURI(imgs[3].img)
+            voiceList.addAll(imgs.map { it.correct })
+            voiceList.shuffle()
         }
-        voiceViews.forEachIndexed { index, constraintLayout ->
-            if (index == 0)
-                constraintLayout.isEnabled = true
-            else{
-                if (index == 3||index == 5)
-                    constraintLayout.isEnabled = data!!.subjectList[group][index-1].completed
-                else
-                    constraintLayout.isEnabled = data!!.subjectList[group][index].listend
-            }
-        }
-        showVoiceEnable()
         initClick()
     }
 
     private fun initClick() {
+        cover_3.setOnClickListener {  }
+        cover_2.setOnClickListener {  }
+        cover_1.setOnClickListener {  }
+        cover_4.setOnClickListener {  }
         voiceViews.forEachIndexed { index, constraintLayout ->
             constraintLayout.clickDelay {
                 if (!playing){
-                    if (index!=0&&!data!!.subjectList[group][index-1].listend){
-                        myToast("请按顺序听语音")
-                        return@clickDelay
-                    }
                     voiceIndex = index
                     handler?.sendEmptyMessage(PLAY_VOICE)
+                    motion.transitionToEnd()
                 }
             }
         }
 
-        cl_answer_1.clickDelay {
-            if (currentImage == 0)
+        cl_1.clickDelay {
+            val voiceIndex = voiceIndex
+            if (playing) //未播放或者正在播放,不可点击
                 return@clickDelay
-            val subject = data!!.subjectList[group][currentImage]
-            if (!subject.listend||subject.completed){
+            if (voiceIndex == -1){//未播放不可点击
+                myToast("请先听题")
                 return@clickDelay
             }
-            act.totalCount++
-            if (answerImg[0] == subject.img){
-                act.rightCount++
-                data!!.subjectList[group][currentImage].completed = true
-                voiceViews[currentImage].callOnClick()
-                motion.transitionToEnd()
-            }else{
-                iv_error_1.visible()
-                iv_error_1.postDelayed({
-                    clearAnswerImg()
-                },3000)
-            }
-        }
-
-        cl_answer_2.clickDelay {
-            if (currentImage == 0)
-                return@clickDelay
-            val subject = data!!.subjectList[group][currentImage]
-            if (!subject.listend||subject.completed){
-                return@clickDelay
-            }
-            if (answerImg[1] == subject.img){
-                data!!.subjectList[group][currentImage].completed = true
-                voiceViews[currentImage].callOnClick()
-                motion.transitionToEnd()
-            }else{
-                iv_error_2.visible()
-                iv_error_2.postDelayed({
-                    clearAnswerImg()
-                },3000)
-            }
-        }
-
-        cl_answer_3.clickDelay {
-            if (currentImage == 0)
-                return@clickDelay
-            val subject = data!!.subjectList[group][currentImage]
-            if (!subject.listend||subject.completed){
-                return@clickDelay
-            }
-            if (answerImg[2] == subject.img){
-                data!!.subjectList[group][currentImage].completed = true
-                voiceViews[currentImage].callOnClick()
-                motion.transitionToEnd()
-            }else{
-                iv_error_3.visible()
-                iv_error_3.postDelayed({
-                    clearAnswerImg()
-                },3000)
-            }
-        }
-    }
-
-    private fun showVoiceEnable(){
-        voiceViews.forEachIndexed { index, constraintLayout ->
-            if (index == 0)
-                constraintLayout.isEnabled = true
-            else{
-                if (index == 3||index == 5)
-                    constraintLayout.isEnabled = data!!.subjectList[group][index-1].completed
-                else
-                    constraintLayout.isEnabled = data!!.subjectList[group][index-1].listend
-            }
-        }
-    }
-
-    private fun clearAnswerImg(){
-        iv_answer_1.setImageURI("")
-        iv_answer_2.setImageURI("")
-        iv_answer_3.setImageURI("")
-        iv_3.setImageURI("")
-        iv_5.setImageURI("")
-        iv_6.setImageURI("")
-        iv_full_1.gone()
-        iv_full_2.gone()
-        iv_full_3.gone()
-        iv_error_1.gone()
-        iv_error_2.gone()
-        iv_error_3.gone()
-        data!!.subjectList[group][currentImage].listend = false
-    }
-
-    private fun showAnswerImg(){
-        answerImg.shuffle()
-        iv_answer_1.setImageURI(answerImg[0])
-        iv_answer_2.setImageURI(answerImg[1])
-        iv_answer_3.setImageURI(answerImg[2])
-
-        iv_full_1.visible()
-        iv_full_2.visible()
-        iv_full_3.visible()
-
-        val voiceNow = data!!.subjectList[group][currentImage]
-        //设置动画飞行路径 3对3
-        val rightImageIndex = answerImg.indexOf(voiceNow.img)
-        var start = 0
-        var end = 0
-        when(rightImageIndex){
-            0->{
-                start = R.id.start_1
-                when(currentImage){
-                    2-> end = R.id.end_1_1
-                    4-> end = R.id.end_1_2
-                    5-> end = R.id.end_1_3
-                }
-            }
-            1->{
-                start = R.id.start_2
-                when(currentImage){
-                    2-> end = R.id.end_2_1
-                    4-> end = R.id.end_2_2
-                    5-> end = R.id.end_2_3
-                }
-            }
-            2->{
-                start = R.id.start_3
-                when(currentImage){
-                    2-> end = R.id.end_3_1
-                    4-> end = R.id.end_3_2
-                    5-> end = R.id.end_3_3
-                }
-            }
-        }
-        motion.progress = 0f
-        motion.setTransition(start,end)
-        motion.setTransitionListener(object : MotionLayout.TransitionListener{
-            override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
-                when(rightImageIndex){
+//            if (data!!.subjectList[group][0].completed) //已作答不可点击
+//                return@clickDelay
+            act.totalCount ++
+            if (data!!.subjectList[group][0].correct == voiceList[voiceIndex]){
+                result_1.imageResource = R.mipmap.successs
+                act.rightCount ++
+                //执行飞行动画
+                var start = 0
+                var end = 0
+                when(voiceIndex){
                     0->{
-                        iv_full_1.gone()
+                        start = R.id.start_1
+                        end = R.id.end_1_1
                     }
                     1->{
-                        iv_full_2.gone()
+                        start = R.id.start_2
+                        end = R.id.end_2_1
                     }
                     2->{
-                        iv_full_3.gone()
+                        start = R.id.start_3
+                        end = R.id.end_3_1
+                    }
+                    3->{
+                        start = R.id.start_4
+                        end = R.id.end_4_1
                     }
                 }
+                nowVoiceView =  voiceViews[voiceIndex]
+                imgPosition = 0
+                motion.setTransitionListener(object :MotionLayout.TransitionListener{
+                    override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
+
+                    }
+
+                    override fun onTransitionChange(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Int,
+                        p3: Float
+                    ) {
+                    }
+
+                    override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
+                        cl_voice_end_1.visible()
+                        when(voiceIndex){
+                            0->cover_1.visible()
+                            1->cover_2.visible()
+                            2->cover_3.visible()
+                            3->cover_4.visible()
+                        }
+                    }
+
+                    override fun onTransitionTrigger(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Boolean,
+                        p3: Float
+                    ) {
+                    }
+                })
+                motion.setTransition(start,end)
+                motion.transitionToEnd()
+                handler?.sendEmptyMessage(PLAY_RIGHT)
+            }else{
+                result_1.imageResource = R.mipmap.zhifushibai
+                handler?.sendEmptyMessage(PLAY_ERROR)
+            }
+            showResultAnim(cl_1)
+        }
+
+        cl_2.clickDelay {
+            val voiceIndex = voiceIndex
+
+            if (playing) //未播放或者正在播放,不可点击
+                return@clickDelay
+            if (voiceIndex == -1){//未播放不可点击
+                myToast("请先听题")
+                return@clickDelay
+            }
+//            if (data!!.subjectList[group][1].completed) //已作答不可点击
+//                return@clickDelay
+            act.totalCount ++
+            if (data!!.subjectList[group][1].correct == voiceList[voiceIndex]){
+                result_2.imageResource = R.mipmap.successs
+                act.rightCount ++
+                imgPosition = 1
+                //执行飞行动画
+                var start = 0
+                var end = 0
+                when(voiceIndex){
+                    0->{
+                        start = R.id.start_1
+                        end = R.id.end_1_2
+                    }
+                    1->{
+                        start = R.id.start_2
+                        end = R.id.end_2_2
+                    }
+                    2->{
+                        start = R.id.start_3
+                        end = R.id.end_3_2
+                    }
+                    3->{
+                        start = R.id.start_4
+                        end = R.id.end_4_2
+                    }
+                }
+                nowVoiceView =  voiceViews[voiceIndex]
+
+                motion.setTransitionListener(object :MotionLayout.TransitionListener{
+                    override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
+
+                    }
+
+                    override fun onTransitionChange(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Int,
+                        p3: Float
+                    ) {
+                    }
+
+                    override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
+                        cl_voice_end_2.visible()
+                        when(voiceIndex){
+                            0->cover_1.visible()
+                            1->cover_2.visible()
+                            2->cover_3.visible()
+                            3->cover_4.visible()
+                        }
+                    }
+
+                    override fun onTransitionTrigger(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Boolean,
+                        p3: Float
+                    ) {
+                    }
+                })
+                motion.setTransition(start,end)
+                motion.transitionToEnd()
+                handler?.sendEmptyMessage(PLAY_RIGHT)
+            }else{
+                result_2.imageResource = R.mipmap.zhifushibai
+                handler?.sendEmptyMessage(PLAY_ERROR)
+            }
+            showResultAnim(cl_2)
+        }
+
+        cl_3.clickDelay {
+            val voiceIndex = voiceIndex
+
+            if (playing) //未播放或者正在播放,不可点击
+                return@clickDelay
+            if (voiceIndex == -1){//未播放不可点击
+                myToast("请先听题")
+                return@clickDelay
+            }
+//            if (data!!.subjectList[group][2].completed) //已作答不可点击
+//                return@clickDelay
+            act.totalCount ++
+            if (data!!.subjectList[group][2].correct == voiceList[voiceIndex]){
+                result_3.imageResource = R.mipmap.successs
+                imgPosition = 2
+                act.rightCount ++
+                //执行飞行动画
+                var start = 0
+                var end = 0
+                when(voiceIndex){
+                    0->{
+                        start = R.id.start_1
+                        end = R.id.end_1_3
+                    }
+                    1->{
+                        start = R.id.start_2
+                        end = R.id.end_2_3
+                    }
+                    2->{
+                        start = R.id.start_3
+                        end = R.id.end_3_3
+                    }
+                    3->{
+                        start = R.id.start_4
+                        end = R.id.end_4_3
+                    }
+                }
+                nowVoiceView =  voiceViews[voiceIndex]
+
+                motion.setTransitionListener(object :MotionLayout.TransitionListener{
+                    override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
+
+                    }
+
+                    override fun onTransitionChange(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Int,
+                        p3: Float
+                    ) {
+                    }
+
+                    override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
+                        cl_voice_end_3.visible()
+                        when(voiceIndex){
+                            0->cover_1.visible()
+                            1->cover_2.visible()
+                            2->cover_3.visible()
+                            3->cover_4.visible()
+                        }
+                    }
+
+                    override fun onTransitionTrigger(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Boolean,
+                        p3: Float
+                    ) {
+                    }
+                })
+                motion.setTransition(start,end)
+                motion.transitionToEnd()
+                handler?.sendEmptyMessage(PLAY_RIGHT)
+            }else{
+                result_3.imageResource = R.mipmap.zhifushibai
+                handler?.sendEmptyMessage(PLAY_ERROR)
+            }
+            showResultAnim(cl_3)
+        }
+
+        cl_4.clickDelay {
+            val voiceIndex = voiceIndex
+            if (playing) //未播放或者正在播放,不可点击
+                return@clickDelay
+            if (voiceIndex == -1){//未播放不可点击
+                myToast("请先听题")
+                return@clickDelay
+            }
+//            if (data!!.subjectList[group][3].completed) //已作答不可点击
+//                return@clickDelay
+            act.totalCount ++
+            if (data!!.subjectList[group][3].correct == voiceList[voiceIndex]){
+                result_4.imageResource = R.mipmap.successs
+                imgPosition = 3
+                act.rightCount ++
+                //执行飞行动画
+                var start = 0
+                var end = 0
+                when(voiceIndex){
+                    0->{
+                        start = R.id.start_1
+                        end = R.id.end_1_4
+                    }
+                    1->{
+                        start = R.id.start_2
+                        end = R.id.end_2_4
+                    }
+                    2->{
+                        start = R.id.start_3
+                        end = R.id.end_3_4
+                    }
+                    3->{
+                        start = R.id.start_4
+                        end = R.id.end_4_4
+                    }
+                }
+                nowVoiceView =  voiceViews[voiceIndex]
+
+                motion.setTransitionListener(object :MotionLayout.TransitionListener{
+                    override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
+
+                    }
+
+                    override fun onTransitionChange(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Int,
+                        p3: Float
+                    ) {
+                    }
+
+                    override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
+                        cl_voice_end_4.visible()
+                        when(voiceIndex){
+                            0->cover_1.visible()
+                            1->cover_2.visible()
+                            2->cover_3.visible()
+                            3->cover_4.visible()
+                        }
+                    }
+
+                    override fun onTransitionTrigger(
+                        p0: MotionLayout?,
+                        p1: Int,
+                        p2: Boolean,
+                        p3: Float
+                    ) {
+                    }
+                })
+                motion.setTransition(start,end)
+                motion.transitionToEnd()
+                handler?.sendEmptyMessage(PLAY_RIGHT)
+            }else{
+                result_4.imageResource = R.mipmap.zhifushibai
+                handler?.sendEmptyMessage(PLAY_ERROR)
+            }
+            showResultAnim(cl_4)
+        }
+
+        cl_voice_end_1.setOnClickListener {
+            voiceIndex = 4
+            player.startPlayMusic(requireContext(),data!!.subjectList[group][0].correct)
+        }
+        cl_voice_end_2.setOnClickListener {
+            voiceIndex = 5
+            player.startPlayMusic(requireContext(),data!!.subjectList[group][1].correct)
+
+        }
+        cl_voice_end_3.setOnClickListener {
+            voiceIndex = 6
+            player.startPlayMusic(requireContext(),data!!.subjectList[group][2].correct)
+
+        }
+        cl_voice_end_4.setOnClickListener {
+            voiceIndex = 7
+            player.startPlayMusic(requireContext(),data!!.subjectList[group][3].correct)
+
+        }
+    }
+
+    private fun showResultAnim(m:MotionLayout){
+        m.transitionToEnd()
+        m.setTransitionListener(object :MotionLayout.TransitionListener{
+            override fun onTransitionStarted(p0: MotionLayout?, p1: Int, p2: Int) {
             }
 
             override fun onTransitionChange(p0: MotionLayout?, p1: Int, p2: Int, p3: Float) {
             }
 
             override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) {
-                when(currentImage){
-                    2->{
-                        iv_3.setImageURI(data!!.subjectList[group][2].img)
-                    }
-                    4->{
-                        iv_5.setImageURI(data!!.subjectList[group][4].img)
-                    }
-                    5->{
-                        iv_6.setImageURI(data!!.subjectList[group][5].img)
-                    }
-                }
+                m.progress = 0f
+                tv_name.text =""
             }
 
             override fun onTransitionTrigger(p0: MotionLayout?, p1: Int, p2: Boolean, p3: Float) {
@@ -270,13 +473,19 @@
     fun recover(){
         Log.e(TAG,"回到上一题,恢复答题前的状态")
         motion.progress = 0f
-        clearAnswerImg()
-        currentImage = 0
         data!!.subjectList[group].forEach {
             it.completed = false
             it.listend = false
         }
-        showVoiceEnable()
+        cover_1.gone()
+        cover_2.gone()
+        cover_3.gone()
+        cover_4.gone()
+        tv_name.text =""
+        cl_voice_end_1.gone()
+        cl_voice_end_2.gone()
+        cl_voice_end_3.gone()
+        cl_voice_end_4.gone()
     }
 
     companion object{
@@ -299,10 +508,16 @@
 
     override fun onStartPlay() {
         playing = true
+        if (errorPlaying||rightPlaying)
+            return
+        val list = data!!.subjectList[group]
+        if (voiceIndex in 0..3)
+            tv_name.text = list[list.map { it.correct }.indexOf(voiceList[voiceIndex])].name
         when(voiceIndex){
             0->{
                 iv1_1.gone()
                 iv2_1.gone()
+                iv_playing_1.visible()
                 iv_playing_1.visible()
             }
             1->{
@@ -321,15 +536,26 @@
                 iv2_4.gone()
                 iv_playing_4.visible()
             }
+
             4->{
-                iv1_5.gone()
-                iv2_5.gone()
-                iv_playing_5.visible()
+                iv1_1_end.gone()
+                iv2_1_end.gone()
+                iv_playing_1_end.visible()
             }
             5->{
-                iv1_6.gone()
-                iv2_6.gone()
-                iv_playing_6.visible()
+                iv1_2_end.gone()
+                iv2_2_end.gone()
+                iv_playing_2_end.visible()
+            }
+            6->{
+                iv1_3_end.gone()
+                iv2_3_end.gone()
+                iv_playing_3_end.visible()
+            }
+            7->{
+                iv1_4_end.gone()
+                iv2_4_end.gone()
+                iv_playing_4_end.visible()
             }
 
         }
@@ -337,55 +563,90 @@
 
     override fun onFinishPlay() {
         playing = false
-        val subject = data!!.subjectList[group][voiceIndex]
-        subject.listend = true
         when(voiceIndex){
             0->{
                 iv1_1.visible()
                 iv2_1.visible()
                 iv_playing_1.gone()
+                if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                    voiceIndex = -1
+                    nowVoiceView = null
+                }
             }
             1->{
                 iv1_2.visible()
                 iv2_2.visible()
                 iv_playing_2.gone()
+                if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                    voiceIndex = -1
+                    nowVoiceView = null
+                }
             }
             2->{
                 iv1_3.visible()
                 iv2_3.visible()
                 iv_playing_3.gone()
-                if (!subject.completed){
-                    currentImage = 2
-                    showAnswerImg()
+                if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                    voiceIndex = -1
+                    nowVoiceView = null
                 }
             }
             3->{
                 iv1_4.visible()
                 iv2_4.visible()
                 iv_playing_4.gone()
-            }
-            4->{
-                iv1_5.visible()
-                iv2_5.visible()
-                iv_playing_5.gone()
-                if (!subject.completed){
-                    currentImage = 4
-                    showAnswerImg()
+                if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                    voiceIndex = -1
+                    nowVoiceView = null
                 }
+            }
+
+            4->{
+                iv1_1_end.visible()
+                iv2_1_end.visible()
+                iv_playing_1_end.gone()
+                voiceIndex = -1
             }
             5->{
-                iv1_6.visible()
-                iv2_6.visible()
-                iv_playing_6.gone()
-                if (!subject.completed){
-                    currentImage = 5
-                    showAnswerImg()
-                }else{
-                    Log.e(TAG,"本题全部答对,3秒后进入下一图")
-                    handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
-                }
+                iv1_2_end.visible()
+                iv2_2_end.visible()
+                iv_playing_2_end.gone()
+                voiceIndex = -1
+            }
+            6->{
+                iv1_3_end.visible()
+                iv2_3_end.visible()
+                iv_playing_3_end.gone()
+                voiceIndex = -1
+            }
+            7->{
+                iv1_4_end.visible()
+                iv2_4_end.visible()
+                iv_playing_4_end.gone()
+                voiceIndex = -1
             }
         }
-        showVoiceEnable()
+        if (data!!.subjectList[group].filter { it.completed }.size == 4){ //全部答对
+            handler?.sendEmptyMessage(TO_NEXT)
+        }
+
+        if (errorPlaying)
+            errorPlaying = false
+        if (rightPlaying){
+            rightPlaying = false
+            nowVoiceView?.callOnClick()
+            data!!.subjectList[group][imgPosition].completed = true
+        }
+    }
+
+
+    override fun onPause() {
+        super.onPause()
+        player.stopPlayMusic()
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        handler?.removeCallbacksAndMessages(null)
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1