|
|
@@ -1,8 +1,12 @@
|
|
|
package com.grkj.iscs.view.dialog
|
|
|
|
|
|
import android.content.Context
|
|
|
+import android.view.View
|
|
|
+import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.view.base.BaseDialog
|
|
|
import com.grkj.iscs.databinding.DialogTipBinding
|
|
|
+import java.util.Timer
|
|
|
+import java.util.TimerTask
|
|
|
|
|
|
/**
|
|
|
* 通用提示弹框
|
|
|
@@ -11,6 +15,7 @@ class TipDialog(ctx: Context) : BaseDialog<DialogTipBinding>(ctx) {
|
|
|
|
|
|
private var confirmListener: (() -> Unit)? = null
|
|
|
private var cancelListener: (() -> Unit)? = null
|
|
|
+ private var mTimer: Timer? = null
|
|
|
|
|
|
companion object {
|
|
|
const val TYPE_CONFIRM = 0
|
|
|
@@ -39,14 +44,38 @@ class TipDialog(ctx: Context) : BaseDialog<DialogTipBinding>(ctx) {
|
|
|
fun setType(type: Int) {
|
|
|
when (type) {
|
|
|
TYPE_CONFIRM -> {
|
|
|
- mBinding?.btnCancel?.visibility = android.view.View.GONE
|
|
|
+ mBinding?.btnCancel?.visibility = View.GONE
|
|
|
}
|
|
|
TYPE_ALL -> {
|
|
|
- mBinding?.btnCancel?.visibility = android.view.View.VISIBLE
|
|
|
+ mBinding?.btnCancel?.visibility = View.VISIBLE
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 自动倒计时取消模式显示
|
|
|
+ */
|
|
|
+ fun showCancelCountdown(seconds: Int) {
|
|
|
+ mBinding?.btnCancel?.visibility = View.VISIBLE
|
|
|
+ mBinding?.btnCancel?.text = context.getString(R.string.cancel_countdown, seconds)
|
|
|
+
|
|
|
+ show()
|
|
|
+
|
|
|
+ var countSeconds = seconds
|
|
|
+ mTimer = Timer().apply {
|
|
|
+ schedule(object : TimerTask() {
|
|
|
+ override fun run() {
|
|
|
+ mBinding?.btnCancel?.text = context.getString(R.string.cancel_countdown, countSeconds)
|
|
|
+ if (countSeconds == 0) {
|
|
|
+ dismiss()
|
|
|
+ cancelListener?.invoke()
|
|
|
+ }
|
|
|
+ countSeconds--
|
|
|
+ }
|
|
|
+ }, 0, 1000)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
fun setConfirmListener(listener: () -> Unit) {
|
|
|
confirmListener = listener
|
|
|
}
|
|
|
@@ -54,4 +83,9 @@ class TipDialog(ctx: Context) : BaseDialog<DialogTipBinding>(ctx) {
|
|
|
fun setCancelListener(listener: () -> Unit) {
|
|
|
cancelListener = listener
|
|
|
}
|
|
|
+
|
|
|
+ override fun dismiss() {
|
|
|
+ super.dismiss()
|
|
|
+ mTimer?.cancel()
|
|
|
+ }
|
|
|
}
|