| | |
| | | import android.os.Looper |
| | | import android.os.Message |
| | | import android.util.Log |
| | | import android.view.View |
| | | import androidx.constraintlayout.motion.widget.MotionLayout |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.activity.ImagePagerActivity |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.visible |
| | | import com.dollearn.student.R |
| | | import com.dollearn.student.utils.AudioUtils |
| | | 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.startActivity |
| | | |
| | | class IncludeFragment : BaseFragment(), AudioUtils.OnAudioStatusUpdateListener { |
| | | override fun contentViewId() = R.layout.fragment_include |
| | |
| | | private var handler:Handler? = null |
| | | private val PLAY_VOICE = 1 |
| | | private val TO_NEXT = 2 |
| | | |
| | | private val PLAY_ERROR = 3 |
| | | private val PLAY_RIGHT = 4 |
| | | |
| | | private val errorVoice by lazy { SPUtils.instance().getString(Const.EV) } |
| | | private val rightVoice by lazy { SPUtils.instance().getString(Const.RV) } |
| | | |
| | | private var rightPlaying = false |
| | | private var errorPlaying = false |
| | | |
| | | private val player by lazy { AudioUtils() } |
| | | private val group by lazy { arguments?.getInt("group")?:0 } |
| | |
| | | private val answerImg = arrayListOf<String>() //随机答案图片 |
| | | private var currentImage = 0 //当前作答的题号:2,4,5 |
| | | |
| | | private var nowVoiceView: View? = null |
| | | |
| | | override fun onFirstVisibleToUser() { |
| | | player.setOnAudioStatusUpdateListener(this) |
| | | player.stopPlayMusic() |
| | |
| | | if (isAdded&&!playing){ |
| | | (requireActivity() as IncludeActivity).next() |
| | | } |
| | | } |
| | | PLAY_RIGHT->{ |
| | | rightPlaying = true |
| | | player.startPlayMusic(requireContext(),rightVoice) |
| | | } |
| | | PLAY_ERROR->{ |
| | | errorPlaying = true |
| | | player.startPlayMusic(requireContext(),errorVoice) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | act.totalCount++ |
| | | if (answerImg[0] == subject.img){ |
| | | nowVoiceView = voiceViews[currentImage] |
| | | act.rightCount++ |
| | | data!!.subjectList[group][currentImage].completed = true |
| | | voiceViews[currentImage].callOnClick() |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | motion.transitionToEnd() |
| | | showResultAnim() |
| | | }else{ |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_1.visible() |
| | | iv_error_1.postDelayed({ |
| | | clearAnswerImg() |
| | |
| | | if (!subject.listend||subject.completed){ |
| | | return@clickDelay |
| | | } |
| | | act.totalCount++ |
| | | |
| | | if (answerImg[1] == subject.img){ |
| | | data!!.subjectList[group][currentImage].completed = true |
| | | voiceViews[currentImage].callOnClick() |
| | | nowVoiceView = voiceViews[currentImage] |
| | | act.rightCount++ |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | motion.transitionToEnd() |
| | | showResultAnim() |
| | | }else{ |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_2.visible() |
| | | iv_error_2.postDelayed({ |
| | | clearAnswerImg() |
| | |
| | | if (!subject.listend||subject.completed){ |
| | | return@clickDelay |
| | | } |
| | | act.totalCount++ |
| | | |
| | | if (answerImg[2] == subject.img){ |
| | | data!!.subjectList[group][currentImage].completed = true |
| | | voiceViews[currentImage].callOnClick() |
| | | nowVoiceView = voiceViews[currentImage] |
| | | act.rightCount++ |
| | | handler?.sendEmptyMessage(PLAY_RIGHT) |
| | | motion.transitionToEnd() |
| | | showResultAnim() |
| | | }else{ |
| | | handler?.sendEmptyMessage(PLAY_ERROR) |
| | | iv_error_3.visible() |
| | | iv_error_3.postDelayed({ |
| | | clearAnswerImg() |
| | | },3000) |
| | | } |
| | | } |
| | | |
| | | iv_full_1.clickDelay { |
| | | startActivity<ImagePagerActivity>("url" to arrayListOf(answerImg[0])) |
| | | } |
| | | iv_full_2.clickDelay { |
| | | startActivity<ImagePagerActivity>("url" to arrayListOf(answerImg[1])) |
| | | |
| | | } |
| | | iv_full_3.clickDelay { |
| | | startActivity<ImagePagerActivity>("url" to arrayListOf(answerImg[2])) |
| | | |
| | | } |
| | | } |
| | | |
| | | private fun showResultAnim(){ |
| | | val v = if (currentImage == 2) result_3 else if (currentImage == 4) result_5 else result_6 |
| | | v.visible() |
| | | v.postDelayed({v.gone()},3000) |
| | | } |
| | | |
| | | private fun showVoiceEnable(){ |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 答错后重置 |
| | | */ |
| | | private fun clearAnswerImg(){ |
| | | iv_answer_1.setImageURI("") |
| | | iv_answer_2.setImageURI("") |
| | | iv_answer_3.setImageURI("") |
| | | if (currentImage == 2) |
| | | iv_3.setImageURI("") |
| | | if (currentImage == 4) |
| | | iv_5.setImageURI("") |
| | | if (currentImage == 5) |
| | | iv_6.setImageURI("") |
| | | iv_full_1.gone() |
| | | iv_full_2.gone() |
| | |
| | | data!!.subjectList[group][currentImage].listend = false |
| | | } |
| | | |
| | | /** |
| | | * 答对后的重置 |
| | | */ |
| | | private fun hideAnswerImg(){ |
| | | iv_answer_1.setImageURI("") |
| | | iv_answer_2.setImageURI("") |
| | | iv_answer_3.setImageURI("") |
| | | iv_full_1.gone() |
| | | iv_full_2.gone() |
| | | iv_full_3.gone() |
| | | iv_error_1.gone() |
| | | iv_error_2.gone() |
| | | iv_error_3.gone() |
| | | } |
| | | |
| | | private fun showAnswerImg(){ |
| | | if (errorPlaying||rightPlaying) |
| | | return |
| | | answerImg.shuffle() |
| | | iv_answer_1.setImageURI(answerImg[0]) |
| | | iv_answer_2.setImageURI(answerImg[1]) |
| | |
| | | |
| | | override fun onStartPlay() { |
| | | playing = true |
| | | if (errorPlaying||rightPlaying) |
| | | return |
| | | when(voiceIndex){ |
| | | 0->{ |
| | | iv1_1.gone() |
| | |
| | | if (!subject.completed){ |
| | | currentImage = 2 |
| | | showAnswerImg() |
| | | }else{ |
| | | hideAnswerImg() |
| | | } |
| | | } |
| | | 3->{ |
| | |
| | | if (!subject.completed){ |
| | | currentImage = 4 |
| | | showAnswerImg() |
| | | }else{ |
| | | hideAnswerImg() |
| | | } |
| | | } |
| | | 5->{ |
| | |
| | | currentImage = 5 |
| | | showAnswerImg() |
| | | }else{ |
| | | hideAnswerImg() |
| | | Log.e(TAG,"本题全部答对,3秒后进入下一图") |
| | | handler?.sendEmptyMessageDelayed(TO_NEXT,3000) |
| | | } |
| | | } |
| | | } |
| | | showVoiceEnable() |
| | | |
| | | if (errorPlaying) |
| | | errorPlaying = false |
| | | if (rightPlaying) { |
| | | rightPlaying = false |
| | | data!!.subjectList[group][currentImage].completed = true |
| | | nowVoiceView?.callOnClick() |
| | | } |
| | | } |
| | | |
| | | override fun onPause() { |
| | | super.onPause() |
| | | player.stopPlayMusic() |
| | | } |
| | | } |