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/dialog/TreeTipDialog.kt |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt
index b410f68..f83f84e 100644
--- a/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt
+++ b/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt
@@ -1,11 +1,14 @@
 package com.sinata.xqmuse.dialog
 
+import android.content.DialogInterface
 import android.view.Gravity
+import android.view.KeyEvent
 import androidx.core.os.bundleOf
 import androidx.fragment.app.FragmentManager
 import cn.sinata.xldutils.utils.showAllowingStateLoss
 import com.sinata.xqmuse.R
 import kotlinx.android.synthetic.main.dialog_tip_tree.*
+import org.jetbrains.anko.support.v4.toast
 
 class TreeTipDialog:BaseDialogFragment() {
     override fun setContentView() = R.layout.dialog_tip_tree
@@ -15,19 +18,45 @@
     private val title by lazy { arguments?.getString("title") }
     private val msg by lazy { arguments?.getString("msg") }
 
+    var onDismissCallback:OnDismissCallback? = null
+    override var canceledOnTouchOutside = false
+
     override fun initView() {
+        if (msg!=null) //升级弹窗时,语音播完才能关闭弹窗
+            tv_ok.isEnabled = false
         tv_ok.setOnClickListener { dismissAllowingStateLoss() }
         if (!title.isNullOrEmpty())
             tv_title.text = title
         if (!msg.isNullOrEmpty())
             tv_msg.text = msg
+        dialog?.setOnKeyListener { dialog, keyCode, event ->
+            if (keyCode == KeyEvent.KEYCODE_BACK&&event.action == KeyEvent.ACTION_UP&&!tv_ok.isEnabled){
+                //语音未播完不可返回
+                return@setOnKeyListener true
+            }
+            return@setOnKeyListener false
+        }
+    }
+
+    fun canDismiss(){
+        tv_ok?.isEnabled = true
+    }
+
+    override fun onDismiss(dialog: DialogInterface) {
+        super.onDismiss(dialog)
+        onDismissCallback?.onDismiss()
+    }
+
+    interface OnDismissCallback{
+        fun onDismiss()
     }
 
     companion object{
-        fun show(fm:FragmentManager,title:String?=null,msg:String?=null){
+        fun show(fm:FragmentManager,title:String?=null,msg:String?=null):TreeTipDialog{
             val treeTipDialog = TreeTipDialog()
             treeTipDialog.arguments = bundleOf("title" to title,"msg" to msg)
             treeTipDialog.showAllowingStateLoss(fm,"first")
+            return treeTipDialog
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1