package com.cr.dialog

import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
import android.widget.TextView
import com.cr.cruav.R
import java.lang.ref.WeakReference

/**
 * 操作系统：MAC系统
 * 创建者：王成
 * 创建日期：2023/4/10 14:59
 * 描述：等待框
 */
class DialogLoadingUtil {
    companion object{
        // define: 2023/4/10 对话框
        var loadingDialog:AlertDialog?=null

        /**
         * 初始化
         * @param context Context 上下文
         * @param res Int 资源Id
         * @param message String 消息内容
         */
        private fun init(context:Context,res:Int,message:String){
            if(loadingDialog == null){
                loadingDialog = AlertDialog.Builder(context).create()
                if(res>0){
                    // todo: 2023/4/10 创建视图
                    var view: View = LayoutInflater.from(context).inflate(res,null)
                    // todo: 2023/4/10 挂载控件显示文本
                    var lblMessage:TextView = view.findViewById(R.id.load_message)
                    lblMessage.text = message
                    // todo: 2023/4/10 设置视图
                    loadingDialog?.setView(view)
                    // todo: 2023/4/10 设置对话框背景
                    loadingDialog?.window?.setBackgroundDrawableResource(android.R.color.transparent)
                    // todo: 2023/4/10 去掉阴影
                    loadingDialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
                }else{
                    loadingDialog?.setMessage("加载中...")
                }
                // todo: 2023/4/10 禁止点击外部关闭
                loadingDialog?.setCancelable(false)
            }
        }

        /**
         * 显示等待框
         * @param context Context 上下文
         * @param message String 消息内容
         */
        fun show(context: Context,message:String){
            init(context, R.layout.dig_loading,message)
            loadingDialog?.show()
            loadingDialog?.setCancelable(false);
        }

        /**
         * 关闭等待框
         */
        fun dismiss(){
            if(loadingDialog != null && loadingDialog?.isShowing == true){
                loadingDialog?.dismiss()
                loadingDialog = null
            }
        }

    }
}