From bee2d6cacc7ff3af682897eee1eac4720f5e1b8d Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期六, 08 二月 2025 18:15:37 +0800
Subject: [PATCH] 新增功能开发完成

---
 app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt |   49 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 39 insertions(+), 10 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 ddc5d59..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
@@ -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"
     }
 }

--
Gitblit v1.7.1