lmw
2025-01-10 601f14db94013373df700e007095f7f2f5ecbe24
app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
@@ -10,6 +10,8 @@
import cn.sinata.xldutils.visible
import com.github.penfeizhou.animation.apng.APNGDrawable
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.luck.picture.lib.tools.SPUtils
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.dialog.TreeTipDialog
import com.sinata.xqmuse.network.HttpManager
@@ -20,6 +22,7 @@
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.ScreenUtil
import com.sinata.xqmuse.utils.event.EmptyEvent
import com.sinata.xqmuse.utils.extention.checkLogin
import com.sinata.xqmuse.utils.extention.clickDelay
import kotlinx.android.synthetic.main.fragment_tree.*
import org.greenrobot.eventbus.EventBus
@@ -46,9 +49,9 @@
        Log.e("虚拟导航栏高度", "$virtualBarHeigh")
        val navigationBarHeight = getNavigationBarHeight()
        Log.e("导航栏高度", "$navigationBarHeight")
        if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度
            behavior.setPeekHeight(dip(63) - getNavigationBarHeight(), true)
        else
//        if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度
//            behavior.setPeekHeight(dip(63) + getNavigationBarHeight(), true)
//        else
            behavior.setPeekHeight(dip(63), true)
        tv_rule.setOnClickListener {
            HttpManager.getH5(6).requestByF(this){ _, data->
@@ -75,7 +78,7 @@
            EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_HOME))
        }
        iv_water.clickDelay {
//            showWater()
            showWater()
//            tree?.energyValue = 0
//            tree!!.treeLevelType++
//            showTreeAnim(tree!!.getTreeApng(),true)
@@ -91,19 +94,23 @@
            else
                HttpManager.watering().requestByF(this){_,data->
                    data?.apply {
                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.USER_INFO_CHANGED)) //刷新成长值
                        tv_max.text = "/$nextLevel"
                        tv_growth.text = growthValue.toString()
                        val targetHeight = growthValue.toDouble()/nextLevel*dip(155)
                        val layoutParams = progress.layoutParams
                        showGrowthAnim(layoutParams.height, max(1,targetHeight.toInt()))
                        showWater()
                        tree?.energyValue = 0
                        tree?.energyValue = energyValue
                        tv_power.text = "当前能量值:${(tree?.energyValue?:0)}"
                        if (isNext){
                            tree!!.treeLevelType++
                        if (tree!!.treeLevelType != data.treeLevelType){
                            tree!!.treeLevelType = data.treeLevelType
                            showTreeAnim(tree!!.getTreeApng(),true)
                            audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
                            TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!")
                            TreeTipDialog.show(childFragmentManager,"生命之树",tree!!.getLevelName())
                        }else if (tree!!.status != 2){
                            tree!!.status = 2
                            showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1)
                        }
                    }
                }
@@ -143,12 +150,11 @@
    }
    private fun checkFirst() {
        HttpManager.isFirst().requestByF(this){_,data->
            if (data == true){
                TreeTipDialog.show(childFragmentManager)
                audioPlayer.startPlayMusic(requireContext(),Const.TREE.first)
        if (checkLogin())
            HttpManager.isFirst().requestByF(this){_,data->
                if (data == true)
                    showFirst()
            }
        }
    }
    fun getTree(){
@@ -175,6 +181,16 @@
        }
    }
    /**
     * 首次进入树苗打卡,播放音频和弹窗说明
     */
    fun showFirst(){
        if (!(activity as MainActivity).hasTreeFirstShow){
            TreeTipDialog.show(childFragmentManager)
            audioPlayer.startPlayMusic(requireContext(),Const.TREE.first)
        }
    }
    private fun showTreeDead() {
        iv_tree.setImageResource(tree!!.getTreeDead())
//        tv_again.visible()