lmw
1 天以前 9904e5f900ba751c1fe719cdf889f00e9f1418e8
app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
@@ -48,13 +48,17 @@
    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>() //随机答案图片
    private var currentImage = 0 //当前作答的题号:2,4,5
    private var nowVoiceView: View? = null
    private var isAutoPlaying = false //true自动播放流程
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
@@ -87,13 +91,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)
@@ -105,17 +119,19 @@
                    constraintLayout.isEnabled = data!!.subjectList[group][index].listend
            }
        }
        showVoiceEnable()
        initClick()
        showVoiceEnable()
        isAutoPlaying = true
        voiceViews[0].callOnClick()
    }
    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)
@@ -139,6 +155,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_1.visible()
                iv_error_1.postDelayed({
@@ -164,6 +181,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_2.visible()
                iv_error_2.postDelayed({
@@ -189,6 +207,7 @@
                motion.transitionToEnd()
                showResultAnim()
            }else{
                right = false
                handler?.sendEmptyMessage(PLAY_ERROR)
                iv_error_3.visible()
                iv_error_3.postDelayed({
@@ -353,6 +372,8 @@
     */
    fun recover(){
        Log.e(TAG,"回到上一题,恢复答题前的状态")
        right = true
        isAutoPlaying = false
        motion.progress = 0f
        clearAnswerImg()
        currentImage = 0
@@ -472,7 +493,7 @@
                }else{
                    hideAnswerImg()
                    Log.e(TAG,"本题全部答对,3秒后进入下一图")
                    handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
                    handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
                }
            }
        }
@@ -482,8 +503,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()
    }