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/IncludeFragment.kt |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 10 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 320c3ea..744ab92 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
@@ -16,8 +16,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_include.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
 import org.jetbrains.anko.support.v4.dip
 import org.jetbrains.anko.support.v4.startActivity
 
@@ -56,9 +59,14 @@
 
     private var nowVoiceView: View? = null
 
+    private var isAutoPlaying = false //true自动播放流程
+
+    var right = true //true进入下一题为全对,false 一旦答错过就置为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)
@@ -95,13 +103,13 @@
                 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()
-                    }
-                }
+//                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)
         }
@@ -115,8 +123,8 @@
                     constraintLayout.isEnabled = data!!.subjectList[group][index].listend
             }
         }
-        showVoiceEnable()
         initClick()
+        showVoiceEnable()
     }
 
     private fun initClick() {
@@ -149,6 +157,7 @@
                 motion.transitionToEnd()
                 showResultAnim()
             }else{
+                right = false
                 handler?.sendEmptyMessage(PLAY_ERROR)
                 iv_error_1.visible()
                 iv_error_1.postDelayed({
@@ -174,6 +183,7 @@
                 motion.transitionToEnd()
                 showResultAnim()
             }else{
+                right = false
                 handler?.sendEmptyMessage(PLAY_ERROR)
                 iv_error_2.visible()
                 iv_error_2.postDelayed({
@@ -199,6 +209,7 @@
                 motion.transitionToEnd()
                 showResultAnim()
             }else{
+                right = false
                 handler?.sendEmptyMessage(PLAY_ERROR)
                 iv_error_3.visible()
                 iv_error_3.postDelayed({
@@ -358,11 +369,23 @@
         })
     }
 
+    @Subscribe
+    fun onEvent(e: EmptyEvent){
+        if (e.code == Const.EventCode.RECOVERD){
+            if (act.fragments[act.vp.currentItem] == this){ //自动播放
+                isAutoPlaying = true
+                voiceViews[0].callOnClick()
+            }
+        }
+    }
+
     /**
      * 回到上一题,恢复状态
      */
     fun recover(){
         Log.e(TAG,"回到上一题,恢复答题前的状态")
+        right = true
+        isAutoPlaying = false
         motion.progress = 0f
         clearAnswerImg()
         currentImage = 0
@@ -371,6 +394,10 @@
             it.listend = false
         }
         showVoiceEnable()
+        if (act.fragments[act.vp.currentItem] == this&&act.recoverd) { //自动播放
+            isAutoPlaying = true
+            voiceViews[0].callOnClick()
+        }
     }
 
     companion object{
@@ -482,7 +509,7 @@
                 }else{
                     hideAnswerImg()
                     Log.e(TAG,"本题全部答对,3秒后进入下一图")
-                    handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
+                    handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
                 }
             }
         }
@@ -492,8 +519,27 @@
             rightPlaying = false
             data!!.subjectList[group][currentImage].completed = true
             nowVoiceView?.callOnClick()
-        }else
+        }else{
             subject.listend = true
+            if (isAutoPlaying)
+                when(voiceIndex){
+                    0-> voiceViews[1].callOnClick()
+                    1-> voiceViews[2].callOnClick()
+                    3-> voiceViews[4].callOnClick()
+                    2,4,5-> isAutoPlaying = false
+                }
+            else if (subject.completed){
+                when(voiceIndex){
+                    2->{
+                        isAutoPlaying = true
+                        voiceViews[3].callOnClick()
+                    }
+                    4->{
+                        voiceViews[5].callOnClick()
+                    }
+                }
+            }
+        }
         showVoiceEnable()
     }
 
@@ -505,5 +551,6 @@
     override fun onDestroy() {
         super.onDestroy()
         handler?.removeCallbacksAndMessages(null)
+        EventBus.getDefault().unregister(this)
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1