123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package com.develop.common.dialog
- import android.os.Bundle
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.view.ViewTreeObserver
- import com.develop.base.ext.background_drawable
- import com.develop.base.ext.setGone
- import com.develop.base.ext.src
- import com.develop.base.mvvm.FullScreenTransparentDialog
- import com.develop.base.util.ThreadUtils
- import com.develop.common.R
- import com.develop.common.databinding.DialogShareQrCodeBinding
- import com.develop.common.utils.QRCodeUtils
- class ShareQRCodeDialog : FullScreenTransparentDialog() {
- private lateinit var binding: DialogShareQrCodeBinding
- var recipeNum: String = ""
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- binding = DialogShareQrCodeBinding.inflate(inflater, container, false)
- binding.ivQrCode.viewTreeObserver.addOnPreDrawListener(
- object : ViewTreeObserver.OnPreDrawListener {
- override fun onPreDraw(): Boolean {
- binding.ivQrCode.viewTreeObserver.removeOnPreDrawListener(this)
- loadQRCode(binding.ivQrCode.width, binding.ivQrCode.height)
- return false
- }
- })
- binding.ivCancel.setOnClickListener {
- removeSelf()
- }
- binding.ivCancel.apply {
- src = R.drawable.ic_cancel
- background_drawable = R.drawable.bg_icon_cancel
- }
- return binding.root
- }
- private fun loadQRCode(width: Int, height: Int) {
- ThreadUtils.runOnWorkThread({
- val bitmap = QRCodeUtils.createQRCodeBitmap(recipeNum, width, height)
- binding.ivQrCode.post {
- binding.loading.setGone()
- binding.ivQrCode.setImageBitmap(bitmap)
- }
- })
- }
- }
|