lmw
1 天以前 9904e5f900ba751c1fe719cdf889f00e9f1418e8
app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt
@@ -71,6 +71,11 @@
    private var nowVoiceView: View? = null
    private var isAutoPlaying = 0
    var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误
    override fun onFirstVisibleToUser() {
        player.setOnAudioStatusUpdateListener(this)
        player.stopPlayMusic()
@@ -120,13 +125,15 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_1,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
                right = false
                recoverAnswer()
                handler?.sendEmptyMessage(PLAY_ERROR)
                dot_1.visible()
@@ -134,7 +141,7 @@
                dot_1.postDelayed({
                    dot_1.gone()
                    iv_error_1.gone()
                },3000)
                },2000)
            }
        }
        rl_check_2.clickDelay {
@@ -151,10 +158,11 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_2,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
@@ -165,7 +173,7 @@
                dot_2.postDelayed({
                    dot_2.gone()
                    iv_error_2.gone()
                },3000)
                },2000)
            }
        }
        rl_check_3.clickDelay {
@@ -182,10 +190,11 @@
                act.rightCount++
                Log.e(TAG,"选择正确")
                transAnimation(cl_answer_3,voiceViews[questionIndex])
                resultViews[questionIndex].visible()
                resultViews[questionIndex].postDelayed({
                    resultViews[questionIndex].gone()
                },3000)
                val resultView = resultViews[questionIndex]
                resultView.visible()
                resultView.postDelayed({
                    resultView.gone()
                },2000)
                nowVoiceView = voiceViews[questionIndex]
                handler?.sendEmptyMessage(PLAY_RIGHT)
            }else{
@@ -196,9 +205,15 @@
                dot_3.postDelayed({
                    dot_3.gone()
                    iv_error_3.gone()
                },3000)
                },2000)
            }
        }
        isAutoPlaying = 1
        voiceViews.filterIndexed { index, constraintLayout ->
            val subject = list[index]
            constraintLayout.isEnabled&&subject.isQuestion == 1
        }.firstOrNull()?.callOnClick()
    }
@@ -206,6 +221,7 @@
     * 恢复答案和题目ui
     */
    fun recover(){
        right = true
        showVoiceUi()
        list.forEach { it.completed = false }
        recoverAnswer()
@@ -258,13 +274,13 @@
        }
        questionIndex = position
        if (questionIndex == 0||questionIndex == 2){
            iv2_answer_1.setImageResource(R.mipmap.voice_question)
            iv2_answer_2.setImageResource(R.mipmap.voice_question)
            iv2_answer_3.setImageResource(R.mipmap.voice_question)
            iv2_answer_1.setImageResource(R.mipmap.voice_question_2)
            iv2_answer_2.setImageResource(R.mipmap.voice_question_2)
            iv2_answer_3.setImageResource(R.mipmap.voice_question_2)
        }else{
            iv2_answer_1.setImageResource(R.mipmap.voice_answer)
            iv2_answer_2.setImageResource(R.mipmap.voice_answer)
            iv2_answer_3.setImageResource(R.mipmap.voice_answer)
            iv2_answer_1.setImageResource(R.mipmap.voice_answer_2)
            iv2_answer_2.setImageResource(R.mipmap.voice_answer_2)
            iv2_answer_3.setImageResource(R.mipmap.voice_answer_2)
        }
        rl_check_1.visible()
        rl_check_2.visible()
@@ -303,7 +319,7 @@
        val x = PropertyValuesHolder.ofFloat("translationX",0f,offx.toFloat())
        val y = PropertyValuesHolder.ofFloat("translationY",0f,offy.toFloat())
        val animator = ObjectAnimator.ofPropertyValuesHolder(v, x, y)
        animator.duration = 1000
        animator.duration = 500
        animator.interpolator = LinearInterpolator()
        animator.start()
        animator.addListener(object :Animator.AnimatorListener{
@@ -390,16 +406,33 @@
            }
        }
        if (list.filter { it.completed }.size == 2){ //全部作答,3秒后下一题
            handler?.sendEmptyMessageDelayed(TO_NEXT,3000)
        if (isAutoPlaying in 1..2){
            if (voiceIndex in 0..3){
                cl_answer_1.callOnClick()
            }else if (voiceIndex == 4)
                cl_answer_2.callOnClick()
            else if (voiceIndex == 5)
                cl_answer_3.callOnClick()
            else if (voiceIndex == 6){
                isAutoPlaying = if (isAutoPlaying == 1) 0 else -1
            }
        }
        if (errorPlaying)
            errorPlaying = false
        if (rightPlaying){
        else if (rightPlaying){
            rightPlaying = false
            nowVoiceView?.callOnClick()
            list[questionIndex].completed = true
            recoverAnswer()
        }else if (list.filter { it.completed }.size == 2){ //全部作答,3秒后下一题
            handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒
        }else if (list.filter { it.completed }.size == 1&& isAutoPlaying == 0){//答完一题,自动播放下一题
            isAutoPlaying = 2
            voiceViews.filterIndexed { index, constraintLayout ->
                val subject = list[index]
                constraintLayout.isEnabled&&subject.isQuestion == 1
            }.lastOrNull()?.callOnClick()
        }
    }