From 8d72ec1b07a4fe0863b41b1140a8c0e679867b93 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 03 四月 2025 17:44:29 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt | 65 ++++++++++++++++++++++++-------- 1 files changed, 49 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt index d72c556..0ff6077 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt @@ -49,10 +49,10 @@ Log.e("虚拟导航栏高度", "$virtualBarHeigh") val navigationBarHeight = getNavigationBarHeight() Log.e("导航栏高度", "$navigationBarHeight") - if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度 - behavior.setPeekHeight(dip(63) - getNavigationBarHeight(), true) - else - behavior.setPeekHeight(dip(63), true) +// if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度 +// behavior.setPeekHeight(dip(63) + getNavigationBarHeight(), true) +// else + 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 @@ -78,13 +79,12 @@ EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_HOME)) } iv_water.clickDelay { -// showWater() + showWater() // tree?.energyValue = 0 // tree!!.treeLevelType++ // showTreeAnim(tree!!.getTreeApng(),true) // audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio()) // TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!") - if (tree?.energyValue == 0) toast("能量值不足") // else if (tree?.status == 1) @@ -94,19 +94,20 @@ 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++ - showTreeAnim(tree!!.getTreeApng(),true) - audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio()) - TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!") + if (tree!!.treeLevelType != data.treeLevelType){ + showGrowUpDialog(data.treeLevelType) + }else if (tree!!.status != 2){ + tree!!.status = 2 + showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1) } } } @@ -151,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(){ @@ -254,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" } } -- Gitblit v1.7.1