From 855a7e18a795f0db2453a19e3e8f26ba2ff553b4 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期四, 29 五月 2025 16:32:41 +0800
Subject: [PATCH] UI调整

---
 app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt |   85 ++++++++++++++++++++++++++++++++----------
 1 files changed, 64 insertions(+), 21 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 13fc332..de291b6 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
@@ -15,8 +15,11 @@
 import com.dollearn.student.R
 import com.dollearn.student.utils.AudioUtils
 import com.dollearn.student.utils.Const
+import com.dollearn.student.utils.event.EmptyEvent
 import com.dollearn.student.utils.extention.clickDelay
 import kotlinx.android.synthetic.main.fragment_match.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
 import org.jetbrains.anko.imageResource
 
 
@@ -57,11 +60,15 @@
     private val completedVoice = arrayListOf<String>() //已经选了的音频 飞到图片上了
 
     var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
+    var isAutoPlaying = false
+
 
 
     override fun onFirstVisibleToUser() {
         player.setOnAudioStatusUpdateListener(this)
         player.stopPlayMusic()
+        EventBus.getDefault().register(this)
+
         handler = object : Handler(Looper.getMainLooper()){
             override fun handleMessage(msg: Message) {
                 super.handleMessage(msg)
@@ -108,7 +115,6 @@
                 if (!playing){
                     voiceIndex = index
                     handler?.sendEmptyMessage(PLAY_VOICE)
-                    motion.transitionToEnd()
                 }
             }
         }
@@ -471,6 +477,16 @@
         })
     }
 
+    @Subscribe
+    fun onEvent(e: EmptyEvent){
+        if (e.code == Const.EventCode.RECOVERD){
+            if (act.fragments[act.vp.currentItem] == this){ //自动播放
+                isAutoPlaying = true
+                cl_voice_1.callOnClick()
+            }
+        }
+    }
+
     /**
      * 回到上一题,恢复状态
      */
@@ -491,6 +507,10 @@
         cl_voice_end_2.gone()
         cl_voice_end_3.gone()
         cl_voice_end_4.gone()
+        if (act.fragments[act.vp.currentItem] == this&&act.recoverd) { //自动播放
+            isAutoPlaying = true
+            cl_voice_1.callOnClick()
+        }
     }
 
     companion object{
@@ -573,37 +593,24 @@
                 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 (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
-                    voiceIndex = -1
-                    nowVoiceView = null
-                }
+
             }
             3->{
                 iv1_4.visible()
                 iv2_4.visible()
                 iv_playing_4.gone()
-                if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
-                    voiceIndex = -1
-                    nowVoiceView = null
-                }
             }
 
             4->{
@@ -631,16 +638,50 @@
                 voiceIndex = -1
             }
         }
-        if (data!!.subjectList[group].filter { it.completed }.size == 4){ //全部答对
-            handler?.sendEmptyMessage(TO_NEXT)
-        }
 
         if (errorPlaying)
             errorPlaying = false
         if (rightPlaying){
             rightPlaying = false
-            nowVoiceView?.callOnClick()
+//            nowVoiceView?.callOnClick() //客户需求:回答正确后不再重播语音 直接下一题
             data!!.subjectList[group][imgPosition].completed = true
+
+            when(voiceIndex){
+                0->{
+                    if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                        voiceIndex = -1
+                        nowVoiceView = null
+                        isAutoPlaying = true
+                        cl_voice_2.callOnClick()
+                    }
+                }
+                1->{
+                    if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                        voiceIndex = -1
+                        nowVoiceView = null
+                        isAutoPlaying = true
+                        cl_voice_3.callOnClick()
+                    }
+                }
+                2->{
+                    if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                        voiceIndex = -1
+                        nowVoiceView = null
+                        isAutoPlaying = true
+                        cl_voice_4.callOnClick()
+                    }
+                }
+                3->{
+                    if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
+                        voiceIndex = -1
+                        nowVoiceView = null
+                    }
+                }
+            }
+            if (data!!.subjectList[group].filter { it.completed }.size == 4){ //全部答对
+                handler?.sendEmptyMessage(TO_NEXT)
+            }
+
         }
     }
 
@@ -653,5 +694,7 @@
     override fun onDestroy() {
         super.onDestroy()
         handler?.removeCallbacksAndMessages(null)
+        EventBus.getDefault().unregister(this)
+
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1