Newer
Older
CasicSmartTube / app / src / main / java / com / casic / smarttube / widgets / ProgressDialog.kt
package com.casic.smarttube.widgets

import android.app.Dialog
import android.content.Context
import android.os.Bundle
import com.casic.smarttube.databinding.DialogProgressBinding
import com.pengxh.kt.lite.R
import com.pengxh.kt.lite.extensions.binding
import com.pengxh.kt.lite.extensions.initDialogLayoutParams

class ProgressDialog(context: Context) : Dialog(context, R.style.UserDefinedDialogStyle) {

    private val binding: DialogProgressBinding by binding()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        this.initDialogLayoutParams(0.5f)
        setCanceledOnTouchOutside(false)
        setCancelable(false)
        binding.progressBar.progress = 0
        binding.progressText.text = "0 %"
    }

    fun setMaxProgress(maxProgress: Long) {
        binding.progressBar.max = maxProgress.toInt()
    }

    private fun getMaxProgress() = binding.progressBar.max

    fun updateProgress(progress: Long) {
        binding.progressBar.progress = progress.toInt()

        val percent = (progress.toFloat() / getMaxProgress()) * 100
        binding.progressText.text = String.format("%.2f %%", percent)
    }
}