Commit 13281b4d authored by wanglei's avatar wanglei

...

parent 3fd02b8f
...@@ -39,18 +39,22 @@ import com.base.scanqrclear.databinding.ActivityQrStyleResultBinding ...@@ -39,18 +39,22 @@ import com.base.scanqrclear.databinding.ActivityQrStyleResultBinding
import com.base.scanqrclear.qr.QrStyleUtils.generateQRCodeWithBackground import com.base.scanqrclear.qr.QrStyleUtils.generateQRCodeWithBackground
import com.base.scanqrclear.ui.widget.HintDialog.showHintDialog import com.base.scanqrclear.ui.widget.HintDialog.showHintDialog
import com.base.scanqrclear.utils.BarUtils import com.base.scanqrclear.utils.BarUtils
import com.base.scanqrclear.utils.BitmapUtils.saveBitmapToFile
import com.base.scanqrclear.utils.LogEx import com.base.scanqrclear.utils.LogEx
import com.base.scanqrclear.utils.SpJsonUtils
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition import com.bumptech.glide.request.transition.Transition
import com.google.gson.Gson import com.google.gson.Gson
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import java.io.File
class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(ActivityQrStyleResultBinding::inflate) { class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(ActivityQrStyleResultBinding::inflate) {
private var scanBean: ScanBean? = null private var scanBean: ScanBean? = null
private var key: String = "" private var key: String = ""
private var qrString = "" private var qrString = ""
private var tempImagePath: String = ""
override fun initView() { override fun initView() {
super.initView() super.initView()
...@@ -112,12 +116,60 @@ class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(Activit ...@@ -112,12 +116,60 @@ class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(Activit
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) { override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
// 在这里获取到 Bitmap // 在这里获取到 Bitmap
processBitmap(resource, bean) processBitmap(resource, bean)
//创建临时图片
createTempImageFile(resource)
} }
override fun onLoadCleared(placeholder: Drawable?) { override fun onLoadCleared(placeholder: Drawable?) {
// 图片加载失败时的回调 // 图片加载失败时的回调
} }
}) })
}
//创建历史记录
createHistorySp()
}
private fun createHistorySp() {
scanBean?.let {
if (it.needCreate) {
it.needCreate = false
when (key) {
KEY_WHATSAPP -> {
SpJsonUtils.addJsonBean<WhatsappUIBean>(KEY_WHATSAPP, it as WhatsappUIBean)
}
KEY_YOUTUBE -> {
SpJsonUtils.addJsonBean<YoutubeUIBean>(KEY_YOUTUBE, it as YoutubeUIBean)
}
KEY_FACEBOOK -> {
SpJsonUtils.addJsonBean<FacebookUIBean>(KEY_FACEBOOK, it as FacebookUIBean)
}
KEY_INSTAGRAM -> {
SpJsonUtils.addJsonBean<InstagramUIBean>(KEY_INSTAGRAM, it as InstagramUIBean)
}
KEY_X -> {
SpJsonUtils.addJsonBean<XUIBean>(KEY_X, it as XUIBean)
}
KEY_SPOTIFY -> {
SpJsonUtils.addJsonBean<SpotifyUIBean>(KEY_SPOTIFY, it as SpotifyUIBean)
}
KEY_PAYPAL -> {
SpJsonUtils.addJsonBean<PaypalUIBean>(KEY_PAYPAL, it as PaypalUIBean)
}
KEY_ADDRESS -> {
SpJsonUtils.addJsonBean<AddressUIBean>(KEY_ADDRESS, it as AddressUIBean)
}
}
}
} }
} }
...@@ -220,9 +272,20 @@ class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(Activit ...@@ -220,9 +272,20 @@ class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(Activit
}.start() }.start()
fun createTempImageFile(bitmap: Bitmap) = Thread {
val file = File(cacheDir, System.currentTimeMillis().toString() + ".jpg")
val flag = saveBitmapToFile(bitmap, file.absolutePath)
if (flag) {
tempImagePath = file.absolutePath
}
}.start()
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback { finish() } onBackPressedDispatcher.addCallback {
finishToMainTop()
}
binding.flBack.setOnClickListener { binding.flBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
......
...@@ -6,26 +6,42 @@ import android.view.ViewGroup ...@@ -6,26 +6,42 @@ import android.view.ViewGroup
import com.base.scanqrclear.R import com.base.scanqrclear.R
import com.base.scanqrclear.ads.AdsMgr import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.bean.AdScanBean import com.base.scanqrclear.bean.AdScanBean
import com.base.scanqrclear.bean.AddressUIBean
import com.base.scanqrclear.bean.ContractUIBean import com.base.scanqrclear.bean.ContractUIBean
import com.base.scanqrclear.bean.EmailUIBean import com.base.scanqrclear.bean.EmailUIBean
import com.base.scanqrclear.bean.EventUIBean import com.base.scanqrclear.bean.EventUIBean
import com.base.scanqrclear.bean.FacebookUIBean
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_ADDRESS
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_CONTACT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_CONTACT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EMAIL import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EMAIL
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EVENT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EVENT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_LOCATION import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_LOCATION
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_MESSAGE import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_MESSAGE
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PAYPAL
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PRODUCT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PRODUCT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_SPOTIFY
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TELEPHONE import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TELEPHONE
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TEXT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TEXT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WEBSITE import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WEBSITE
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WHATSAPP
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WIFI import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WIFI
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_YOUTUBE
import com.base.scanqrclear.bean.InstagramUIBean
import com.base.scanqrclear.bean.MessageUIBean import com.base.scanqrclear.bean.MessageUIBean
import com.base.scanqrclear.bean.PaypalUIBean
import com.base.scanqrclear.bean.ProductUIBean import com.base.scanqrclear.bean.ProductUIBean
import com.base.scanqrclear.bean.ScanBean import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.SpotifyUIBean
import com.base.scanqrclear.bean.TelephoneUIBean import com.base.scanqrclear.bean.TelephoneUIBean
import com.base.scanqrclear.bean.TextUIBean import com.base.scanqrclear.bean.TextUIBean
import com.base.scanqrclear.bean.WebsiteUIBean import com.base.scanqrclear.bean.WebsiteUIBean
import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.WifiUIBean import com.base.scanqrclear.bean.WifiUIBean
import com.base.scanqrclear.bean.XUIBean
import com.base.scanqrclear.bean.YoutubeUIBean
import com.base.scanqrclear.databinding.ItemAdBinding import com.base.scanqrclear.databinding.ItemAdBinding
import com.base.scanqrclear.databinding.ItemHistoryBinding import com.base.scanqrclear.databinding.ItemHistoryBinding
import com.base.scanqrclear.ui.adapter.CommonViewHolder import com.base.scanqrclear.ui.adapter.CommonViewHolder
...@@ -120,6 +136,53 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() { ...@@ -120,6 +136,53 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
} }
} }
KEY_WHATSAPP -> {
if (item is WhatsappUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_whatsapp)
}
}
KEY_YOUTUBE -> {
if (item is YoutubeUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_youtube)
}
}
KEY_FACEBOOK -> {
if (item is FacebookUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_facebook)
}
}
KEY_INSTAGRAM -> {
if (item is InstagramUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_instagram)
}
}
KEY_X -> {
if (item is XUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_x)
}
}
KEY_SPOTIFY -> {
if (item is SpotifyUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_spotify)
}
}
KEY_PAYPAL -> {
if (item is PaypalUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_paypal)
}
}
KEY_ADDRESS -> {
if (item is AddressUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_address)
}
}
} }
binding.tvDesc.text = item.listContent binding.tvDesc.text = item.listContent
......
...@@ -13,8 +13,11 @@ import com.base.scanqrclear.base.BaseFragment ...@@ -13,8 +13,11 @@ import com.base.scanqrclear.base.BaseFragment
import com.base.scanqrclear.bean.AdScanBean import com.base.scanqrclear.bean.AdScanBean
import com.base.scanqrclear.bean.FunctionUIBean import com.base.scanqrclear.bean.FunctionUIBean
import com.base.scanqrclear.bean.ScanBean import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.config.AdConfigBean.Companion.adsConfigBean import com.base.scanqrclear.bean.config.AdConfigBean.Companion.adsConfigBean
import com.base.scanqrclear.databinding.FragmentHistoryBinding import com.base.scanqrclear.databinding.FragmentHistoryBinding
import com.base.scanqrclear.qr.QrStyleActivity
import com.base.scanqrclear.qr.QrStyleResultActivity
import com.base.scanqrclear.ui.contact.ContractCodeActivity import com.base.scanqrclear.ui.contact.ContractCodeActivity
import com.base.scanqrclear.ui.email.EmailCodeActivity import com.base.scanqrclear.ui.email.EmailCodeActivity
import com.base.scanqrclear.ui.event.EventCodeActivity import com.base.scanqrclear.ui.event.EventCodeActivity
...@@ -139,6 +142,63 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -139,6 +142,63 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
putExtra("data", Gson().toJson(item)) putExtra("data", Gson().toJson(item))
}) })
} }
FunctionUIBean.KEY_WHATSAPP -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_WHATSAPP)
})
}
FunctionUIBean.KEY_YOUTUBE -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_YOUTUBE)
})
}
FunctionUIBean.KEY_FACEBOOK -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_FACEBOOK)
})
}
FunctionUIBean.KEY_INSTAGRAM -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_INSTAGRAM)
})
}
FunctionUIBean.KEY_X -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_X)
})
}
FunctionUIBean.KEY_SPOTIFY -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_SPOTIFY)
})
}
FunctionUIBean.KEY_PAYPAL -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_PAYPAL)
})
}
FunctionUIBean.KEY_ADDRESS -> {
activity?.startActivity(Intent(activity, QrStyleResultActivity::class.java).apply {
putExtra("data", Gson().toJson(item))
putExtra("key", FunctionUIBean.KEY_ADDRESS)
})
}
} }
} }
......
...@@ -2,19 +2,33 @@ package com.base.scanqrclear.ui.main ...@@ -2,19 +2,33 @@ package com.base.scanqrclear.ui.main
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.base.scanqrclear.bean.AddressUIBean
import com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
import com.base.scanqrclear.bean.ContractUIBean import com.base.scanqrclear.bean.ContractUIBean
import com.base.scanqrclear.bean.EmailUIBean import com.base.scanqrclear.bean.EmailUIBean
import com.base.scanqrclear.bean.EventUIBean import com.base.scanqrclear.bean.EventUIBean
import com.base.scanqrclear.bean.FacebookUIBean
import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookQrString
import com.base.scanqrclear.bean.FunctionUIBean import com.base.scanqrclear.bean.FunctionUIBean
import com.base.scanqrclear.bean.InstagramUIBean
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramQrString
import com.base.scanqrclear.bean.MessageUIBean import com.base.scanqrclear.bean.MessageUIBean
import com.base.scanqrclear.bean.PaypalUIBean
import com.base.scanqrclear.bean.PaypalUIBean.Companion.createPaypalQrString
import com.base.scanqrclear.bean.ProductUIBean import com.base.scanqrclear.bean.ProductUIBean
import com.base.scanqrclear.bean.ScanBean import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_SCAN import com.base.scanqrclear.bean.SpotifyUIBean
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_USER import com.base.scanqrclear.bean.SpotifyUIBean.Companion.createSpotifyQrString
import com.base.scanqrclear.bean.TelephoneUIBean import com.base.scanqrclear.bean.TelephoneUIBean
import com.base.scanqrclear.bean.TextUIBean import com.base.scanqrclear.bean.TextUIBean
import com.base.scanqrclear.bean.WebsiteUIBean import com.base.scanqrclear.bean.WebsiteUIBean
import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
import com.base.scanqrclear.bean.WifiUIBean import com.base.scanqrclear.bean.WifiUIBean
import com.base.scanqrclear.bean.XUIBean
import com.base.scanqrclear.bean.XUIBean.Companion.createXUIBeanQrString
import com.base.scanqrclear.bean.YoutubeUIBean
import com.base.scanqrclear.bean.YoutubeUIBean.Companion.createYoutubeQrString
import com.base.scanqrclear.utils.LogEx import com.base.scanqrclear.utils.LogEx
import com.base.scanqrclear.utils.SpJsonUtils import com.base.scanqrclear.utils.SpJsonUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
...@@ -50,6 +64,22 @@ class HistoryViewModel() : ViewModel() { ...@@ -50,6 +64,22 @@ class HistoryViewModel() : ViewModel() {
contractList.forEach { it.listContent = it.n } contractList.forEach { it.listContent = it.n }
val messageList = SpJsonUtils.getSpJsonList<MessageUIBean>(FunctionUIBean.KEY_MESSAGE) val messageList = SpJsonUtils.getSpJsonList<MessageUIBean>(FunctionUIBean.KEY_MESSAGE)
messageList.forEach { it.listContent = it.msg } messageList.forEach { it.listContent = it.msg }
val whatsappList = SpJsonUtils.getSpJsonList<WhatsappUIBean>(FunctionUIBean.KEY_WHATSAPP)
whatsappList.forEach { it.listContent = it.createWhatsappQrString() }
val youtubeList = SpJsonUtils.getSpJsonList<YoutubeUIBean>(FunctionUIBean.KEY_YOUTUBE)
youtubeList.forEach { it.listContent = it.createYoutubeQrString() }
val facebookList = SpJsonUtils.getSpJsonList<FacebookUIBean>(FunctionUIBean.KEY_FACEBOOK)
facebookList.forEach { it.listContent = it.createFacebookQrString() }
val insList = SpJsonUtils.getSpJsonList<InstagramUIBean>(FunctionUIBean.KEY_INSTAGRAM)
insList.forEach { it.listContent = it.createInstagramQrString() }
val xList = SpJsonUtils.getSpJsonList<XUIBean>(FunctionUIBean.KEY_X)
xList.forEach { it.listContent = it.createXUIBeanQrString() }
val spotifyList = SpJsonUtils.getSpJsonList<SpotifyUIBean>(FunctionUIBean.KEY_SPOTIFY)
spotifyList.forEach { it.listContent = it.createSpotifyQrString() }
val paypalList = SpJsonUtils.getSpJsonList<PaypalUIBean>(FunctionUIBean.KEY_PAYPAL)
paypalList.forEach { it.listContent = it.createPaypalQrString() }
val addressList = SpJsonUtils.getSpJsonList<AddressUIBean>(FunctionUIBean.KEY_ADDRESS)
addressList.forEach { it.listContent = it.createAddressUIBeanQrString() }
historyList.addAll(wifiList) historyList.addAll(wifiList)
historyList.addAll(textList) historyList.addAll(textList)
...@@ -60,6 +90,14 @@ class HistoryViewModel() : ViewModel() { ...@@ -60,6 +90,14 @@ class HistoryViewModel() : ViewModel() {
historyList.addAll(telephoneList) historyList.addAll(telephoneList)
historyList.addAll(contractList) historyList.addAll(contractList)
historyList.addAll(messageList) historyList.addAll(messageList)
historyList.addAll(whatsappList)
historyList.addAll(youtubeList)
historyList.addAll(facebookList)
historyList.addAll(insList)
historyList.addAll(xList)
historyList.addAll(spotifyList)
historyList.addAll(paypalList)
historyList.addAll(addressList)
historyList.forEach { historyList.forEach {
LogEx.logDebug(TAG, "${it.scanType} ${it.createTime} ${it.createType} ${it.listContent}") LogEx.logDebug(TAG, "${it.scanType} ${it.createTime} ${it.createType} ${it.listContent}")
...@@ -129,6 +167,54 @@ class HistoryViewModel() : ViewModel() { ...@@ -129,6 +167,54 @@ class HistoryViewModel() : ViewModel() {
it1.createTime == it2.createTime it1.createTime == it2.createTime
}) })
} }
FunctionUIBean.KEY_WHATSAPP -> {
SpJsonUtils.removeJsonBean<WhatsappUIBean>(bean.scanType, bean as WhatsappUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_YOUTUBE -> {
SpJsonUtils.removeJsonBean<YoutubeUIBean>(bean.scanType, bean as YoutubeUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_FACEBOOK -> {
SpJsonUtils.removeJsonBean<FacebookUIBean>(bean.scanType, bean as FacebookUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_INSTAGRAM -> {
SpJsonUtils.removeJsonBean<InstagramUIBean>(bean.scanType, bean as InstagramUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_X -> {
SpJsonUtils.removeJsonBean<XUIBean>(bean.scanType, bean as XUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_SPOTIFY -> {
SpJsonUtils.removeJsonBean<SpotifyUIBean>(bean.scanType, bean as SpotifyUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_PAYPAL -> {
SpJsonUtils.removeJsonBean<PaypalUIBean>(bean.scanType, bean as PaypalUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
FunctionUIBean.KEY_ADDRESS -> {
SpJsonUtils.removeJsonBean<AddressUIBean>(bean.scanType, bean as AddressUIBean, removeIf = { it1, it2 ->
it1.createTime == it2.createTime
})
}
} }
historyList.remove(bean) historyList.remove(bean)
......
...@@ -19,7 +19,7 @@ object SortByDialog { ...@@ -19,7 +19,7 @@ object SortByDialog {
val dialog = AlertDialog.Builder(this).create() val dialog = AlertDialog.Builder(this).create()
val binding = DialogSortByBinding.inflate(LayoutInflater.from(this)) val binding = DialogSortByBinding.inflate(LayoutInflater.from(this))
dialog.setView(binding.root) dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(false) dialog.setCanceledOnTouchOutside(true)
dialog.show() dialog.show()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment