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/IncludeFragment.kt |   49 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
index 54cee71..320c3ea 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
@@ -18,6 +18,7 @@
 import com.dollearn.student.utils.Const
 import com.dollearn.student.utils.extention.clickDelay
 import kotlinx.android.synthetic.main.fragment_include.*
+import org.jetbrains.anko.support.v4.dip
 import org.jetbrains.anko.support.v4.startActivity
 
 class IncludeFragment : BaseFragment(), AudioUtils.OnAudioStatusUpdateListener {
@@ -47,7 +48,7 @@
     private val act by lazy { requireActivity() as IncludeActivity }
 
     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_voice1_real,cl_voice2_real,cl_voice3_real,cl_voice4_real,cl_voice5_real,cl_voice6_real) }
     private var playing = false
 
     private val answerImg = arrayListOf<String>() //随机答案图片
@@ -63,6 +64,7 @@
                 super.handleMessage(msg)
                 when(msg.what){
                     PLAY_VOICE->{
+                        playing = true
                         player.startPlayMusic(requireContext(),data!!.subjectList[group][voiceIndex].correct)
                     }
                     TO_NEXT->{
@@ -71,10 +73,12 @@
                         }
                     }
                     PLAY_RIGHT->{
+                        playing = true
                         rightPlaying = true
                         player.startPlayMusic(requireContext(),rightVoice)
                     }
                     PLAY_ERROR->{
+                        playing = true
                         errorPlaying = true
                         player.startPlayMusic(requireContext(),errorVoice)
                     }
@@ -83,13 +87,23 @@
         }
         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)
+            cl_voice1_real.postDelayed({
+                iv_1.setImageURI(originList[0].img)
+                iv_2.setImageURI(originList[1].img)
+                iv_4.setImageURI(originList[3].img)
+                if (cl_1.width > dip(203)){
+                    voiceViews.forEach {
+                        it.layoutParams.width = dip(159)
+                        it.layoutParams.height = dip(52)
+                        it.requestLayout()
+                    }
+                }
+                voiceViews.forEach { it.visible() }
+            },500)
         }
         voiceViews.forEachIndexed { index, constraintLayout ->
             if (index == 0)
@@ -107,11 +121,11 @@
 
     private fun initClick() {
         voiceViews.forEachIndexed { index, constraintLayout ->
-            constraintLayout.clickDelay {
+            constraintLayout.setOnClickListener {
                 if (!playing){
                     if (index!=0&&!data!!.subjectList[group][index-1].listend){
                         myToast("请按顺序听语音")
-                        return@clickDelay
+                        return@setOnClickListener
                     }
                     voiceIndex = index
                     handler?.sendEmptyMessage(PLAY_VOICE)
@@ -120,13 +134,14 @@
         }
 
         cl_answer_1.clickDelay {
-            if (currentImage == 0)
+            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                 return@clickDelay
             val subject = data!!.subjectList[group][currentImage]
             if (!subject.listend||subject.completed){
                 return@clickDelay
             }
             act.totalCount++
+            data!!.subjectList[group][currentImage].listend = false
             if (answerImg[0] == subject.img){
                 nowVoiceView = voiceViews[currentImage]
                 act.rightCount++
@@ -143,7 +158,7 @@
         }
 
         cl_answer_2.clickDelay {
-            if (currentImage == 0)
+            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                 return@clickDelay
             val subject = data!!.subjectList[group][currentImage]
             if (!subject.listend||subject.completed){
@@ -151,6 +166,7 @@
             }
             act.totalCount++
 
+            data!!.subjectList[group][currentImage].listend = false
             if (answerImg[1] == subject.img){
                 nowVoiceView = voiceViews[currentImage]
                 act.rightCount++
@@ -167,7 +183,7 @@
         }
 
         cl_answer_3.clickDelay {
-            if (currentImage == 0)
+            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                 return@clickDelay
             val subject = data!!.subjectList[group][currentImage]
             if (!subject.listend||subject.completed){
@@ -175,6 +191,7 @@
             }
             act.totalCount++
 
+            data!!.subjectList[group][currentImage].listend = false
             if (answerImg[2] == subject.img){
                 nowVoiceView = voiceViews[currentImage]
                 act.rightCount++
@@ -417,7 +434,6 @@
     override fun onFinishPlay() {
         playing = false
         val subject = data!!.subjectList[group][voiceIndex]
-        subject.listend = true
         when(voiceIndex){
             0->{
                 iv1_1.visible()
@@ -470,19 +486,24 @@
                 }
             }
         }
-        showVoiceEnable()
-
         if (errorPlaying)
             errorPlaying = false
-        if (rightPlaying) {
+        else if (rightPlaying) {
             rightPlaying = false
             data!!.subjectList[group][currentImage].completed = true
             nowVoiceView?.callOnClick()
-        }
+        }else
+            subject.listend = true
+        showVoiceEnable()
     }
 
     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