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/ChooseVoiceFragment.kt | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 48 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.kt index c898449..87021c0 100644 --- a/app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.kt +++ b/app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.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_choose_voice.* +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe import org.jetbrains.anko.backgroundResource import org.jetbrains.anko.support.v4.toast @@ -52,17 +55,24 @@ private var playing = false //播放中,不能有任何操作 private val nameViews by lazy { arrayListOf(tv_1,tv_2,tv_3,tv_4) } + private val bgs by lazy { arrayListOf(cl_1,cl_2,cl_3,cl_4) } private val endViews by lazy { arrayListOf(cl_voice_end_1,cl_voice_end_2,cl_voice_end_3,cl_voice_end_4) } private val act by lazy { (requireActivity() as ChooseVoiceActivity) } private var nowVoiceView:View? = null - private val isShowText by lazy { SPUtils.instance().getBoolean(Const.IS_SHOW_TEXT,true) } +// private val isShowText by lazy { SPUtils.instance().getBoolean(Const.IS_SHOW_TEXT,true) } + private val isShowText = false + + 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) @@ -92,8 +102,9 @@ iv_3.setImageURI(originList[2].img) iv_4.setImageURI(originList[3].img) } - showSubImage() initClick() + showSubImage() + } private fun initClick() { @@ -130,6 +141,7 @@ nowVoiceView = cl_voice1 handler?.sendEmptyMessage(PLAY_RIGHT) }else{ + right = false handler?.sendEmptyMessage(PLAY_ERROR) iv_error_1.visible() dot_1.postDelayed({ @@ -245,12 +257,15 @@ val shuffledList = list.shuffled() voiceList.clear() voiceList.addAll(shuffledList) - if (isShowText) nameViews.forEachIndexed { index, textView -> if (index == currentIndex){ - textView.text = originList[index].name - textView.backgroundResource = R.color.textColor99 + bgs[index].backgroundResource = R.drawable.bg_orange_8dp + if (isShowText){ + textView.text = originList[index].name + textView.backgroundResource = R.color.textColor99 + } }else{ + bgs[index].backgroundResource = R.drawable.bg_white_8dp_padding textView.text = "" textView.backgroundResource = R.color.page_bg } @@ -300,11 +315,28 @@ override fun onTransitionCompleted(p0: MotionLayout?, p1: Int) { endViews[currentIndex].visible() + } override fun onTransitionTrigger(p0: MotionLayout?, p1: Int, p2: Boolean, p3: Float) { } }) + + if (act.fragments[act.vp.currentItem] == this&&act.recoverd){ //自动播放 + isAutoPlaying = true + cl_voice1.callOnClick() + } + + } + + @Subscribe + fun onEvent(e:EmptyEvent){ + if (e.code == Const.EventCode.RECOVERD){ + if (act.fragments[act.vp.currentItem] == this){ //自动播放 + isAutoPlaying = true + cl_voice1.callOnClick() + } + } } /** @@ -312,6 +344,7 @@ */ fun recover(){ Log.e(TAG,"回到上一题,恢复答题前的状态") + right = true motion.progress = 0f currentIndex = 0 endViews.forEach { it.gone() } @@ -386,18 +419,22 @@ iv1_1.visible() iv2_1.visible() iv_playing_1.gone() - } - if (voiceIndex == 1){ + if (isAutoPlaying) + cl_voice2.callOnClick() + }else if (voiceIndex == 1){ rl_check_2.visible() iv1_2.visible() iv2_2.visible() iv_playing_2.gone() - } - if (voiceIndex == 2){ + if (isAutoPlaying) + cl_voice3.callOnClick() + }else if (voiceIndex == 2){ rl_check_3.visible() iv1_3.visible() iv2_3.visible() iv_playing_3.gone() + if (isAutoPlaying) + isAutoPlaying = false } if (voiceIndex == 3){ iv1_1_end.visible() @@ -423,7 +460,7 @@ if (data!!.subjectList[group][currentIndex].completed){ //本题已答对 Log.e(TAG,"选对答案后的播放结束3秒后进入下一图") if (currentIndex == 3){ - handler?.sendEmptyMessageDelayed(TO_NEXT,3000) + handler?.sendEmptyMessageDelayed(TO_NEXT,500)//万俊杰:缩短为0.5秒 }else{ currentIndex++ showSubImage() @@ -446,6 +483,7 @@ override fun onDestroy() { super.onDestroy() + EventBus.getDefault().unregister(this) handler?.removeCallbacksAndMessages(null) } } \ No newline at end of file -- Gitblit v1.7.1