Commit 13281b4d authored by wanglei's avatar wanglei

...

parent 3fd02b8f
......@@ -39,18 +39,22 @@ import com.base.scanqrclear.databinding.ActivityQrStyleResultBinding
import com.base.scanqrclear.qr.QrStyleUtils.generateQRCodeWithBackground
import com.base.scanqrclear.ui.widget.HintDialog.showHintDialog
import com.base.scanqrclear.utils.BarUtils
import com.base.scanqrclear.utils.BitmapUtils.saveBitmapToFile
import com.base.scanqrclear.utils.LogEx
import com.base.scanqrclear.utils.SpJsonUtils
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import com.google.gson.Gson
import com.gyf.immersionbar.ktx.immersionBar
import java.io.File
class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(ActivityQrStyleResultBinding::inflate) {
private var scanBean: ScanBean? = null
private var key: String = ""
private var qrString = ""
private var tempImagePath: String = ""
override fun initView() {
super.initView()
......@@ -112,12 +116,60 @@ class QrStyleResultActivity : BaseActivity<ActivityQrStyleResultBinding>(Activit
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
// 在这里获取到 Bitmap
processBitmap(resource, bean)
//创建临时图片
createTempImageFile(resource)
}
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
}.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() {
super.initListener()
onBackPressedDispatcher.addCallback { finish() }
onBackPressedDispatcher.addCallback {
finishToMainTop()
}
binding.flBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
......
......@@ -6,26 +6,42 @@ import android.view.ViewGroup
import com.base.scanqrclear.R
import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.bean.AdScanBean
import com.base.scanqrclear.bean.AddressUIBean
import com.base.scanqrclear.bean.ContractUIBean
import com.base.scanqrclear.bean.EmailUIBean
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_EMAIL
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_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_SPOTIFY
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_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_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.PaypalUIBean
import com.base.scanqrclear.bean.ProductUIBean
import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.SpotifyUIBean
import com.base.scanqrclear.bean.TelephoneUIBean
import com.base.scanqrclear.bean.TextUIBean
import com.base.scanqrclear.bean.WebsiteUIBean
import com.base.scanqrclear.bean.WhatsappUIBean
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.ItemHistoryBinding
import com.base.scanqrclear.ui.adapter.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
......
......@@ -13,8 +13,11 @@ import com.base.scanqrclear.base.BaseFragment
import com.base.scanqrclear.bean.AdScanBean
import com.base.scanqrclear.bean.FunctionUIBean
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.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.email.EmailCodeActivity
import com.base.scanqrclear.ui.event.EventCodeActivity
......@@ -139,6 +142,63 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
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
import androidx.lifecycle.ViewModel
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.EmailUIBean
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.InstagramUIBean
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramQrString
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.ScanBean
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_USER
import com.base.scanqrclear.bean.SpotifyUIBean
import com.base.scanqrclear.bean.SpotifyUIBean.Companion.createSpotifyQrString
import com.base.scanqrclear.bean.TelephoneUIBean
import com.base.scanqrclear.bean.TextUIBean
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.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.SpJsonUtils
import kotlinx.coroutines.Dispatchers
......@@ -50,6 +64,22 @@ class HistoryViewModel() : ViewModel() {
contractList.forEach { it.listContent = it.n }
val messageList = SpJsonUtils.getSpJsonList<MessageUIBean>(FunctionUIBean.KEY_MESSAGE)
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(textList)
......@@ -60,6 +90,14 @@ class HistoryViewModel() : ViewModel() {
historyList.addAll(telephoneList)
historyList.addAll(contractList)
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 {
LogEx.logDebug(TAG, "${it.scanType} ${it.createTime} ${it.createType} ${it.listContent}")
......@@ -129,6 +167,54 @@ class HistoryViewModel() : ViewModel() {
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)
......
......@@ -19,7 +19,7 @@ object SortByDialog {
val dialog = AlertDialog.Builder(this).create()
val binding = DialogSortByBinding.inflate(LayoutInflater.from(this))
dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(false)
dialog.setCanceledOnTouchOutside(true)
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