| | |
| | | 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 |
| | |
| | | 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 |
| | | } |
| | | } |
| | | } |