lmw
2025-02-08 bee2d6cacc7ff3af682897eee1eac4720f5e1b8d
app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
@@ -52,7 +52,7 @@
//        if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度
//            behavior.setPeekHeight(dip(63) + getNavigationBarHeight(), true)
//        else
            behavior.setPeekHeight(dip(63), true)
        behavior.setPeekHeight(dip(63), true)
        tv_rule.setOnClickListener {
            HttpManager.getH5(6).requestByF(this){ _, data->
                data?.let {
@@ -60,6 +60,7 @@
                }
            }
        }
        tv_sign.clickDelay {
            HttpManager.sign().requestByF(this){_,data->
                tv_sign.isEnabled = false
@@ -84,7 +85,6 @@
//            showTreeAnim(tree!!.getTreeApng(),true)
//            audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
//            TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!")
            if (tree?.energyValue == 0)
                toast("能量值不足")
//            else if (tree?.status == 1)
@@ -104,10 +104,7 @@
                        tree?.energyValue = energyValue
                        tv_power.text = "当前能量值:${(tree?.energyValue?:0)}"
                        if (tree!!.treeLevelType != data.treeLevelType){
                            tree!!.treeLevelType = data.treeLevelType
                            showTreeAnim(tree!!.getTreeApng(),true)
                            audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
                            TreeTipDialog.show(childFragmentManager,"生命之树",tree!!.getLevelName())
                            showGrowUpDialog(data.treeLevelType)
                        }else if (tree!!.status != 2){
                            tree!!.status = 2
                            showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1)
@@ -155,6 +152,42 @@
                if (data == true)
                    showFirst()
            }
    }
    /**
     * 依次弹窗升级和播放语音
     */
    private fun showGrowUpDialog(targetLevel:Int){
        tree!!.treeLevelType++
        showTreeAnim(tree!!.getTreeApng(),true)
        audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
        val dialog = TreeTipDialog.show(childFragmentManager,"生命之树",tree!!.getLevelName())
        audioPlayer.setOnAudioStatusUpdateListener(object :AudioUtils.OnAudioStatusUpdateListener{
            override fun onUpdate(db: Double, time: Long) {
            }
            override fun onStop(filePath: String?) {
            }
            override fun onStartPlay() {
            }
            override fun onFinishPlay() {
                dialog.canDismiss()
            }
            override fun onGetDuration(duration: Int) {
            }
        })
        dialog.onDismissCallback = object :TreeTipDialog.OnDismissCallback{
            override fun onDismiss() {
                if (tree!!.treeLevelType != targetLevel) //继续展示下一级
                    showGrowUpDialog(targetLevel)
                else{
                    audioPlayer.setOnAudioStatusUpdateListener(null)
                }
            }
        }
    }
    fun getTree(){
@@ -258,9 +291,5 @@
        val resourceId: Int = resources.getIdentifier("navigation_bar_height", "dimen", "android")
        val height: Int = resources.getDimensionPixelSize(resourceId)
        return height
    }
    companion object{
        const val TAG_TREE = "TAG_TREE"
    }
}