lmw
2024-07-19 cd13751df41c6504b3934cd3f1bd441c4ba172ff
app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
@@ -18,6 +18,7 @@
import com.dollearn.student.utils.Const
import com.dollearn.student.utils.extention.clickDelay
import kotlinx.android.synthetic.main.fragment_include.*
import org.jetbrains.anko.support.v4.dip
import org.jetbrains.anko.support.v4.startActivity
class IncludeFragment : BaseFragment(), AudioUtils.OnAudioStatusUpdateListener {
@@ -47,7 +48,7 @@
    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>() //随机答案图片
@@ -63,6 +64,7 @@
                super.handleMessage(msg)
                when(msg.what){
                    PLAY_VOICE->{
                        playing = true
                        player.startPlayMusic(requireContext(),data!!.subjectList[group][voiceIndex].correct)
                    }
                    TO_NEXT->{
@@ -71,10 +73,12 @@
                        }
                    }
                    PLAY_RIGHT->{
                        playing = true
                        rightPlaying = true
                        player.startPlayMusic(requireContext(),rightVoice)
                    }
                    PLAY_ERROR->{
                        playing = true
                        errorPlaying = true
                        player.startPlayMusic(requireContext(),errorVoice)
                    }
@@ -83,13 +87,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)
@@ -107,11 +121,11 @@
    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)
@@ -120,13 +134,14 @@
        }
        cl_answer_1.clickDelay {
            if (currentImage == 0)
            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                return@clickDelay
            val subject = data!!.subjectList[group][currentImage]
            if (!subject.listend||subject.completed){
                return@clickDelay
            }
            act.totalCount++
            data!!.subjectList[group][currentImage].listend = false
            if (answerImg[0] == subject.img){
                nowVoiceView = voiceViews[currentImage]
                act.rightCount++
@@ -143,7 +158,7 @@
        }
        cl_answer_2.clickDelay {
            if (currentImage == 0)
            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                return@clickDelay
            val subject = data!!.subjectList[group][currentImage]
            if (!subject.listend||subject.completed){
@@ -151,6 +166,7 @@
            }
            act.totalCount++
            data!!.subjectList[group][currentImage].listend = false
            if (answerImg[1] == subject.img){
                nowVoiceView = voiceViews[currentImage]
                act.rightCount++
@@ -167,7 +183,7 @@
        }
        cl_answer_3.clickDelay {
            if (currentImage == 0)
            if (currentImage == 0||!data!!.subjectList[group][currentImage].listend)
                return@clickDelay
            val subject = data!!.subjectList[group][currentImage]
            if (!subject.listend||subject.completed){
@@ -175,6 +191,7 @@
            }
            act.totalCount++
            data!!.subjectList[group][currentImage].listend = false
            if (answerImg[2] == subject.img){
                nowVoiceView = voiceViews[currentImage]
                act.rightCount++
@@ -417,7 +434,6 @@
    override fun onFinishPlay() {
        playing = false
        val subject = data!!.subjectList[group][voiceIndex]
        subject.listend = true
        when(voiceIndex){
            0->{
                iv1_1.visible()
@@ -470,19 +486,24 @@
                }
            }
        }
        showVoiceEnable()
        if (errorPlaying)
            errorPlaying = false
        if (rightPlaying) {
        else if (rightPlaying) {
            rightPlaying = false
            data!!.subjectList[group][currentImage].completed = true
            nowVoiceView?.callOnClick()
        }
        }else
            subject.listend = true
        showVoiceEnable()
    }
    override fun onPause() {
        super.onPause()
        player.stopPlayMusic()
    }
    override fun onDestroy() {
        super.onDestroy()
        handler?.removeCallbacksAndMessages(null)
    }
}