From aa512ff5fc428fbee046d6bc0761c3675023769e Mon Sep 17 00:00:00 2001
From: 罗明文 <125975490@qq.com>
Date: 星期三, 21 五月 2025 15:49:32 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 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 8512d34..c5dbd5e 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
 
 
@@ -56,9 +59,16 @@
 
     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)
@@ -105,7 +115,6 @@
                 if (!playing){
                     voiceIndex = index
                     handler?.sendEmptyMessage(PLAY_VOICE)
-                    motion.transitionToEnd()
                 }
             }
         }
@@ -182,6 +191,7 @@
                 motion.transitionToEnd()
                 handler?.sendEmptyMessage(PLAY_RIGHT)
             }else{
+                right = false
                 result_1.imageResource = R.mipmap.zhifushibai
                 handler?.sendEmptyMessage(PLAY_ERROR)
             }
@@ -467,11 +477,22 @@
         })
     }
 
+    @Subscribe
+    fun onEvent(e: EmptyEvent){
+        if (e.code == Const.EventCode.RECOVERD){
+            if (act.fragments[act.vp.currentItem] == this){ //自动播放
+                isAutoPlaying = true
+                cl_voice_1.callOnClick()
+            }
+        }
+    }
+
     /**
      * 回到上一题,恢复状态
      */
     fun recover(){
         Log.e(TAG,"回到上一题,恢复答题前的状态")
+        right = true
         motion.progress = 0f
         data!!.subjectList[group].forEach {
             it.completed = false
@@ -486,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{
@@ -571,6 +596,8 @@
                 if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
                     voiceIndex = -1
                     nowVoiceView = null
+                    isAutoPlaying = true
+                    cl_voice_2.callOnClick()
                 }
             }
             1->{
@@ -580,6 +607,8 @@
                 if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
                     voiceIndex = -1
                     nowVoiceView = null
+                    isAutoPlaying = true
+                    cl_voice_3.callOnClick()
                 }
             }
             2->{
@@ -589,6 +618,9 @@
                 if (nowVoiceView!=null && data!!.subjectList[group][imgPosition].completed){
                     voiceIndex = -1
                     nowVoiceView = null
+
+                    isAutoPlaying = true
+                    cl_voice_4.callOnClick()
                 }
             }
             3->{
@@ -648,5 +680,7 @@
     override fun onDestroy() {
         super.onDestroy()
         handler?.removeCallbacksAndMessages(null)
+        EventBus.getDefault().unregister(this)
+
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1