学考乐离线App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CommonDialog.kt 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.xkl.cdl.dialog
  2. import android.graphics.drawable.Drawable
  3. import android.os.Bundle
  4. import android.view.View
  5. import androidx.core.content.ContextCompat
  6. import com.suliang.common.AppConfig
  7. import com.suliang.common.base.BaseDialogFragment
  8. import com.suliang.common.extension.click
  9. import com.suliang.common.util.DrawableUti
  10. import com.xkl.cdl.databinding.DialogCommonBinding
  11. /**
  12. * author suliang
  13. * create 2022/4/15 10:22
  14. * Describe: 通用提示弹窗
  15. */
  16. class CommonDialog private constructor() : BaseDialogFragment<DialogCommonBinding>() {
  17. companion object {
  18. @JvmStatic
  19. fun newInstance(dialogBean : CommonDialogBean) : CommonDialog {
  20. val args = Bundle()
  21. args.putParcelable(AppConfig.INTENT_1, dialogBean)
  22. val fragment = CommonDialog()
  23. fragment.arguments = args
  24. return fragment
  25. }
  26. @JvmStatic
  27. fun newInstance(dialogBean : CommonDialogBean, img : Drawable) : CommonDialog {
  28. val args = Bundle()
  29. args.putParcelable(AppConfig.INTENT_1, dialogBean)
  30. val byteArray = DrawableUti.bitmapToByteArray(DrawableUti.drawableToBitmap(img))
  31. args.putByteArray(AppConfig.INTENT_2, byteArray)
  32. val fragment = CommonDialog()
  33. fragment.arguments = args
  34. return fragment
  35. }
  36. }
  37. lateinit var onCommonDialogButtonClickListener : (dialog : CommonDialog, isRightClick : Boolean) -> Unit
  38. override fun initFragment() {
  39. (requireArguments()[AppConfig.INTENT_1] as CommonDialogBean).run {
  40. titleColor?.let {
  41. binding.tvTitle.setTextColor(ContextCompat.getColor(requireContext(),it))
  42. }
  43. titleText?.let {
  44. binding.tvTitle.setText(it)
  45. binding.tvTitle.visibility = View.VISIBLE
  46. }
  47. contentColor?.let {
  48. binding.tvContent.setTextColor(ContextCompat.getColor(requireContext(),it))
  49. }
  50. contentText?.let {
  51. binding.tvContent.setText(it)
  52. binding.tvContent.visibility = View.VISIBLE
  53. }
  54. leftColor?.let {
  55. binding.tvLeft.setTextColor(ContextCompat.getColor(requireContext(),it))
  56. }
  57. leftText?.let {
  58. binding.tvLeft.setText(it)
  59. binding.tvLeft.click {
  60. onCommonDialogButtonClickListener(this@CommonDialog,false)
  61. }
  62. }?:let {
  63. binding.tvLeft.visibility = View.GONE
  64. binding.vSplit.visibility = View.GONE
  65. }
  66. rightColor?.let {
  67. binding.tvRight.setTextColor(ContextCompat.getColor(requireContext(),it))
  68. }
  69. rightText?.let {
  70. binding.tvRight.setText(it)
  71. binding.tvRight.click {
  72. onCommonDialogButtonClickListener(this@CommonDialog,true)
  73. }
  74. }
  75. imgFlag?.let {
  76. binding.img.setImageResource(it)
  77. binding.img.visibility = View.VISIBLE
  78. }
  79. }
  80. (requireArguments()[AppConfig.INTENT_2] as? ByteArray)?.let {
  81. binding.img.setImageBitmap(DrawableUti.byteArrayToBitmap(it))
  82. binding.img.visibility = View.VISIBLE
  83. }
  84. }
  85. }