Files
SecurityDefenseDevice/app/src/main/java/com/example/defenseapplication/view/LoadingDialog.kt
2026-05-26 11:50:01 +08:00

52 lines
1.3 KiB
Kotlin

package com.example.defenseapplication.view
import android.app.Dialog
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.view.Gravity
import android.view.LayoutInflater
import android.view.WindowManager
import com.example.defenseapplication.databinding.DialogLoadingBinding
class LoadingDialog(context: Context) {
private val dialog: Dialog = Dialog(context)
private val binding: DialogLoadingBinding
init {
binding = DialogLoadingBinding.inflate(LayoutInflater.from(context))
dialog.setContentView(binding.root)
dialog.window?.apply {
setGravity(Gravity.CENTER)
setLayout(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT
)
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
setDimAmount(0.5f)
}
dialog.setCancelable(false)
}
fun setMessage(message: String): LoadingDialog {
binding.tvLoading.text = message
return this
}
fun show() {
if (!dialog.isShowing) {
dialog.show()
}
}
fun dismiss() {
if (dialog.isShowing) {
dialog.dismiss()
}
}
fun isShowing(): Boolean {
return dialog.isShowing
}
}