package com.xkl.cdl.dialog import android.graphics.drawable.Drawable import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import com.suliang.common.AppConfig import com.suliang.common.base.BaseDialogFragment import com.suliang.common.extension.click import com.suliang.common.util.DrawableUti import com.xkl.cdl.databinding.DialogCommonBinding /** * author suliang * create 2022/4/15 10:22 * Describe: 通用提示弹窗 */ class CommonDialog private constructor() : BaseDialogFragment() { companion object { @JvmStatic fun newInstance(dialogBean : CommonDialogBean) : CommonDialog { val args = Bundle() args.putParcelable(AppConfig.INTENT_1, dialogBean) val fragment = CommonDialog() fragment.arguments = args return fragment } @JvmStatic fun newInstance(dialogBean : CommonDialogBean, img : Drawable) : CommonDialog { val args = Bundle() args.putParcelable(AppConfig.INTENT_1, dialogBean) val byteArray = DrawableUti.bitmapToByteArray(DrawableUti.drawableToBitmap(img)) args.putByteArray(AppConfig.INTENT_2, byteArray) val fragment = CommonDialog() fragment.arguments = args return fragment } } lateinit var onCommonDialogButtonClickListener : (dialog : CommonDialog, isRightClick : Boolean) -> Unit override fun initFragment() { (requireArguments()[AppConfig.INTENT_1] as CommonDialogBean).run { titleColor?.let { binding.tvTitle.setTextColor(ContextCompat.getColor(requireContext(),it)) } titleText?.let { binding.tvTitle.setText(it) binding.tvTitle.visibility = View.VISIBLE } contentColor?.let { binding.tvContent.setTextColor(ContextCompat.getColor(requireContext(),it)) } contentText?.let { binding.tvContent.setText(it) binding.tvContent.visibility = View.VISIBLE } leftColor?.let { binding.tvLeft.setTextColor(ContextCompat.getColor(requireContext(),it)) } leftText?.let { binding.tvLeft.setText(it) binding.tvLeft.click { onCommonDialogButtonClickListener(this@CommonDialog,false) } }?:let { binding.tvLeft.visibility = View.GONE binding.vSplit.visibility = View.GONE } rightColor?.let { binding.tvRight.setTextColor(ContextCompat.getColor(requireContext(),it)) } rightText?.let { binding.tvRight.setText(it) binding.tvRight.click { onCommonDialogButtonClickListener(this@CommonDialog,true) } } imgFlag?.let { binding.img.setImageResource(it) binding.img.visibility = View.VISIBLE } } (requireArguments()[AppConfig.INTENT_2] as? ByteArray)?.let { binding.img.setImageBitmap(DrawableUti.byteArrayToBitmap(it)) binding.img.visibility = View.VISIBLE } } }