CountDownDokitView.kt 2.5 KB
Newer Older
J
jackjintai 已提交
1 2 3
package com.didichuxing.doraemonkit.kit.health

import android.content.Context
W
will 已提交
4 5
import android.view.Gravity
import android.view.LayoutInflater
J
jackjintai 已提交
6 7
import android.view.View
import android.widget.FrameLayout
W
will 已提交
8 9 10
import android.widget.TextView
import com.blankj.utilcode.util.ConvertUtils
import com.didichuxing.doraemonkit.R
J
jackjintai 已提交
11 12
import com.didichuxing.doraemonkit.kit.core.AbsDokitView
import com.didichuxing.doraemonkit.kit.core.DokitViewLayoutParams
W
will 已提交
13 14
import com.didichuxing.doraemonkit.kit.core.DokitViewManager
import kotlinx.coroutines.*
J
jackjintai 已提交
15 16 17 18 19 20

/**
 * ================================================
 * 作    者:jint(金台)
 * 版    本:1.0
 * 创建日期:2019-12-27-17:59
W
will 已提交
21 22
 * 描    述:页面倒计时浮标
 * 修订历史:update by pengyushan 2020-07-07
J
jackjintai 已提交
23 24 25
 * ================================================
 */
class CountDownDokitView : AbsDokitView() {
W
will 已提交
26 27 28 29 30 31
    private val TAG = "CountDownDokitView"
    private var mNum: TextView? = null
    private var countdownJob: Job? = null
    private val COUNT_DOWN_TOTAL = 10
    private val COUNT_DOWN_INTERVAL = 1700L
    private var countTime = COUNT_DOWN_TOTAL
32
    override fun onCreate(context: Context) {
J
jackjintai 已提交
33 34
    }

35
    override fun onCreateView(context: Context, rootView: FrameLayout): View {
W
will 已提交
36
        return LayoutInflater.from(context).inflate(R.layout.dk_float_count_down,rootView,false)
J
jackjintai 已提交
37 38
    }

39
    override fun onViewCreated(rootView: FrameLayout) {
W
will 已提交
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
        mNum = findViewById(R.id.tv_number)
        countdownJob?.cancel()
        countdownJob = GlobalScope.launch(Dispatchers.Main) {
            while (true){
                delay(COUNT_DOWN_INTERVAL)
                countTime--
                mNum!!.text = "$countTime"
                if (countTime ==0){
                    if (isNormalMode) {
                        DokitViewManager.instance.detach(activity, this@CountDownDokitView)
                    } else {
                        DokitViewManager.instance.detach(this@CountDownDokitView)
                    }
                }
            }
        }
J
jackjintai 已提交
56 57 58
    }

    override fun initDokitViewLayoutParams(params: DokitViewLayoutParams?) {
W
will 已提交
59 60 61 62 63
        params?.height = DokitViewLayoutParams.WRAP_CONTENT
        params?.width = DokitViewLayoutParams.WRAP_CONTENT
        params?.gravity = Gravity.TOP or Gravity.LEFT
        params?.x = ConvertUtils.dp2px(280f)
        params?.y = ConvertUtils.dp2px(25f)
J
jackjintai 已提交
64 65 66 67 68 69 70 71
    }

    /**
     * 重置时间
     */
    fun resetTime() {

    }
W
will 已提交
72 73 74 75 76

    override fun onDestroy() {
        super.onDestroy()
        countdownJob?.cancel()
    }
J
jackjintai 已提交
77
}