Commit c08a3ed7 authored by wanglei's avatar wanglei

...

parent d22d552b
...@@ -5,5 +5,11 @@ open class ScanBean( ...@@ -5,5 +5,11 @@ open class ScanBean(
) { ) {
var listContent: String = ""//用来排序用,这个内容用来展示列表名 var listContent: String = ""//用来排序用,这个内容用来展示列表名
var createTime = System.currentTimeMillis() var createTime = System.currentTimeMillis()
var isCreateOrScan: Boolean = true//create:true ; scan:false var createType: Int = CREATE_TYPE_USER//0手动创建 1扫描创建 2用于浏览无需创建
companion object {
const val CREATE_TYPE_USER = 0
const val CREATE_TYPE_SCAN = 1
const val CREATE_TYPE_VIEW = 2
}
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.base.scanqr.R ...@@ -7,6 +7,7 @@ import com.base.scanqr.R
import com.base.scanqr.base.BaseActivity import com.base.scanqr.base.BaseActivity
import com.base.scanqr.bean.EmailUIBean import com.base.scanqr.bean.EmailUIBean
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL
import com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_VIEW
import com.base.scanqr.databinding.ActivityEmailCodeBinding import com.base.scanqr.databinding.ActivityEmailCodeBinding
import com.base.scanqr.ui.widget.InputNameDialog.showInputNameDialog import com.base.scanqr.ui.widget.InputNameDialog.showInputNameDialog
import com.base.scanqr.utils.BarUtils import com.base.scanqr.utils.BarUtils
...@@ -56,8 +57,10 @@ class EmailCodeActivity : BaseActivity<ActivityEmailCodeBinding>(ActivityEmailCo ...@@ -56,8 +57,10 @@ class EmailCodeActivity : BaseActivity<ActivityEmailCodeBinding>(ActivityEmailCo
tempImage = file.absolutePath tempImage = file.absolutePath
} }
} }
if (email.createType != CREATE_TYPE_VIEW) {
SpJsonUtils.addJsonBean<EmailUIBean>(KEY_EMAIL, email) SpJsonUtils.addJsonBean<EmailUIBean>(KEY_EMAIL, email)
} }
}
}.start() }.start()
} }
......
...@@ -10,6 +10,7 @@ import com.base.scanqr.R ...@@ -10,6 +10,7 @@ import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.FunctionUIBean import com.base.scanqr.bean.FunctionUIBean
import com.base.scanqr.bean.ScanBean import com.base.scanqr.bean.ScanBean
import com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_VIEW
import com.base.scanqr.databinding.FragmentHistoryBinding import com.base.scanqr.databinding.FragmentHistoryBinding
import com.base.scanqr.ui.email.EmailCodeActivity import com.base.scanqr.ui.email.EmailCodeActivity
import com.base.scanqr.ui.text.TextCodeActivity import com.base.scanqr.ui.text.TextCodeActivity
...@@ -43,18 +44,20 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -43,18 +44,20 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
binding.rv.adapter = adapter binding.rv.adapter = adapter
adapter?.moreAction = { view, bean -> adapter?.moreAction = { view, bean ->
requireContext().showHistoryMoreDialog(view, detailAction = { requireContext().showHistoryMoreDialog(view, detailAction = {
bean.createType = CREATE_TYPE_VIEW
jumpByScanBean(bean) jumpByScanBean(bean)
}, removeAction = { }, removeAction = {
viewModel.removeBean(bean) viewModel.removeBean(bean)
if (tab == 0) { if (tab == 0) {
scanUI()
} else {
createUI() createUI()
} else {
scanUI()
} }
}) })
} }
adapter?.itemClick = { item -> adapter?.itemClick = { item ->
item.createType = CREATE_TYPE_VIEW
jumpByScanBean(item) jumpByScanBean(item)
} }
} }
...@@ -97,17 +100,17 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -97,17 +100,17 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
viewModel.removeList(tab) viewModel.removeList(tab)
if (tab == 0) { if (tab == 0) {
scanUI()
} else {
createUI() createUI()
} else {
scanUI()
} }
} }
} }
if (tab == 0) { if (tab == 0) {
scanUI()
} else {
createUI() createUI()
} else {
scanUI()
} }
binding.llSort.setOnClickListener { binding.llSort.setOnClickListener {
requireContext().showSortByDialog { requireContext().showSortByDialog {
...@@ -124,7 +127,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -124,7 +127,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
private fun scanUI() { private fun scanUI() {
tab = 0 tab = 1
binding.tvScan.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10) binding.tvScan.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10)
binding.tvScan.setTextColor(Color.parseColor("#FFFFFF")) binding.tvScan.setTextColor(Color.parseColor("#FFFFFF"))
...@@ -135,7 +138,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -135,7 +138,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
} }
private fun createUI() { private fun createUI() {
tab = 1 tab = 0
binding.tvCreate.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10) binding.tvCreate.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10)
binding.tvCreate.setTextColor(Color.parseColor("#FFFFFF")) binding.tvCreate.setTextColor(Color.parseColor("#FFFFFF"))
...@@ -147,7 +150,8 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -147,7 +150,8 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
private fun changeRvData(isCreateOrScan: Boolean) { private fun changeRvData(isCreateOrScan: Boolean) {
val uiRefresh = { val uiRefresh = {
val createList = viewModel.historyList.filter { it.isCreateOrScan == isCreateOrScan } val qrState = if (isCreateOrScan) 0 else 1
val createList = viewModel.historyList.filter { it.createType == qrState }
binding.llEmpty.isVisible = createList.isEmpty() binding.llEmpty.isVisible = createList.isEmpty()
adapter?.submitList(sortList(createList)) adapter?.submitList(sortList(createList))
} }
...@@ -190,7 +194,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -190,7 +194,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
companion object { companion object {
var tab: Int = 0 //scan=0 create=1 var tab: Int = 0 // create=0 scan=1
val SORT_NAME = "sort_name" val SORT_NAME = "sort_name"
val SORT_TIME = "sort_time" val SORT_TIME = "sort_time"
val SORT_TYPE = "sort_type" val SORT_TYPE = "sort_type"
......
...@@ -37,7 +37,7 @@ class HistoryViewModel() : ViewModel() { ...@@ -37,7 +37,7 @@ class HistoryViewModel() : ViewModel() {
} }
fun removeList(tab: Int) { fun removeList(tab: Int) {
val removeList = historyList.filter { if (tab == 0) !it.isCreateOrScan else it.isCreateOrScan } val removeList = historyList.filter { it.createType == tab }
removeList.forEach { removeBean(it) } removeList.forEach { removeBean(it) }
} }
......
...@@ -11,6 +11,8 @@ import androidx.camera.core.ImageCapture.FLASH_MODE_ON ...@@ -11,6 +11,8 @@ import androidx.camera.core.ImageCapture.FLASH_MODE_ON
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.scanqr.R import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_USER
import com.base.scanqr.bean.TextUIBean import com.base.scanqr.bean.TextUIBean
import com.base.scanqr.databinding.FragmentScanBinding import com.base.scanqr.databinding.FragmentScanBinding
import com.base.scanqr.qr.QRImageAnalyzer import com.base.scanqr.qr.QRImageAnalyzer
...@@ -34,6 +36,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -34,6 +36,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
private var zoomPair = Pair(0f, 100f) private var zoomPair = Pair(0f, 100f)
private val qrImageAnalyzer = QRImageAnalyzer() private val qrImageAnalyzer = QRImageAnalyzer()
override fun initView() { override fun initView() {
super.initView() super.initView()
} }
...@@ -113,6 +116,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -113,6 +116,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
scanJump.set(true) scanJump.set(true)
activity.startActivity(Intent(activity, WifiCodeActivity::class.java).apply { activity.startActivity(Intent(activity, WifiCodeActivity::class.java).apply {
val bean = QRCodeUtils.createWifiBean(qrCodeValue) val bean = QRCodeUtils.createWifiBean(qrCodeValue)
bean.createType = CREATE_TYPE_SCAN
putExtra("data", Gson().toJson(bean)) putExtra("data", Gson().toJson(bean))
}) })
return return
...@@ -123,6 +127,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -123,6 +127,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
scanJump.set(true) scanJump.set(true)
activity.startActivity(Intent(activity, EmailCodeActivity::class.java).apply { activity.startActivity(Intent(activity, EmailCodeActivity::class.java).apply {
val bean = QRCodeUtils.createEmailBean(qrCodeValue) val bean = QRCodeUtils.createEmailBean(qrCodeValue)
bean.createType = CREATE_TYPE_SCAN
putExtra("data", Gson().toJson(bean)) putExtra("data", Gson().toJson(bean))
}) })
return return
...@@ -134,7 +139,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -134,7 +139,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
activity.startActivity(Intent(activity, TextCodeActivity::class.java).apply { activity.startActivity(Intent(activity, TextCodeActivity::class.java).apply {
val bean = TextUIBean() val bean = TextUIBean()
bean.content = qrCodeValue bean.content = qrCodeValue
bean.isCreateOrScan = false bean.createType = CREATE_TYPE_SCAN
putExtra("data", Gson().toJson(bean)) putExtra("data", Gson().toJson(bean))
}) })
return return
......
...@@ -4,9 +4,11 @@ import android.content.Intent ...@@ -4,9 +4,11 @@ import android.content.Intent
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.base.scanqr.base.BaseActivity import com.base.scanqr.base.BaseActivity
import com.base.scanqr.bean.TextUIBean
import com.base.scanqr.databinding.ActivityTextBinding import com.base.scanqr.databinding.ActivityTextBinding
import com.base.scanqr.utils.BarUtils import com.base.scanqr.utils.BarUtils
import com.base.scanqr.utils.ToastUtils.toast import com.base.scanqr.utils.ToastUtils.toast
import com.google.gson.Gson
class TextActivity : BaseActivity<ActivityTextBinding>(ActivityTextBinding::inflate) { class TextActivity : BaseActivity<ActivityTextBinding>(ActivityTextBinding::inflate) {
...@@ -30,7 +32,9 @@ class TextActivity : BaseActivity<ActivityTextBinding>(ActivityTextBinding::infl ...@@ -30,7 +32,9 @@ class TextActivity : BaseActivity<ActivityTextBinding>(ActivityTextBinding::infl
return@setOnClickListener return@setOnClickListener
} }
startActivity(Intent(this, TextCodeActivity::class.java).apply { startActivity(Intent(this, TextCodeActivity::class.java).apply {
putExtra("data", binding.edit.text.toString()) val textUIBean = TextUIBean()
textUIBean.content = binding.edit.text.toString()
putExtra("data", Gson().toJson(textUIBean))
}) })
} }
} }
......
...@@ -18,6 +18,7 @@ import com.base.scanqr.utils.LogEx ...@@ -18,6 +18,7 @@ import com.base.scanqr.utils.LogEx
import com.base.scanqr.utils.QRCodeUtils.generateQRCode import com.base.scanqr.utils.QRCodeUtils.generateQRCode
import com.base.scanqr.utils.SpJsonUtils import com.base.scanqr.utils.SpJsonUtils
import com.base.scanqr.utils.ToastUtils.toast import com.base.scanqr.utils.ToastUtils.toast
import com.google.gson.Gson
import java.io.File import java.io.File
class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeBinding::inflate) { class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeBinding::inflate) {
...@@ -29,25 +30,27 @@ class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeB ...@@ -29,25 +30,27 @@ class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeB
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight()) binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
val data = intent.extras?.getString("data") ?: "" val data = intent.extras?.getString("data")
textUIBean.content = data data?.let {
binding.tvContent.text = data textUIBean = Gson().fromJson(data, TextUIBean::class.java)
binding.tvContent.text = textUIBean.content
}
Thread { Thread {
val bitmap = generateQRCode(textUIBean.content, 735, 735, 5) val bitmap = generateQRCode(textUIBean.content, 735, 735, 5)
runOnUiThread { runOnUiThread {
binding.ivQr.setImageBitmap(bitmap) binding.ivQr.setImageBitmap(bitmap)
val file = File(cacheDir, System.currentTimeMillis().toString() + ".jpg") val file = File(cacheDir, System.currentTimeMillis().toString() + ".jpg")
bitmap?.let { bitmap?.let {
textUIBean.content = data
val flag = saveBitmapToFile(it, file.absolutePath) val flag = saveBitmapToFile(it, file.absolutePath)
LogEx.logDebug(TAG, "flag=$flag tempImage=${file.absolutePath}") LogEx.logDebug(TAG, "flag=$flag tempImage=${file.absolutePath}")
if (flag) { if (flag) {
tempImage = file.absolutePath tempImage = file.absolutePath
} }
} }
if (textUIBean.createType != 2) {
SpJsonUtils.addJsonBean<ScanBean>(FunctionUIBean.KEY_TEXT, textUIBean) SpJsonUtils.addJsonBean<ScanBean>(FunctionUIBean.KEY_TEXT, textUIBean)
} }
}
}.start() }.start()
} }
......
...@@ -80,8 +80,10 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB ...@@ -80,8 +80,10 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
tempImage = file.absolutePath tempImage = file.absolutePath
} }
} }
if (wifiBean.createType != 2) {
SpJsonUtils.addJsonBean<WifiUIBean>(FunctionUIBean.KEY_WIFI, wifiBean) SpJsonUtils.addJsonBean<WifiUIBean>(FunctionUIBean.KEY_WIFI, wifiBean)
} }
}
}.start() }.start()
} }
......
...@@ -3,6 +3,7 @@ package com.base.scanqr.utils ...@@ -3,6 +3,7 @@ package com.base.scanqr.utils
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.Color import android.graphics.Color
import com.base.scanqr.bean.EmailUIBean import com.base.scanqr.bean.EmailUIBean
import com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import com.base.scanqr.bean.WifiUIBean import com.base.scanqr.bean.WifiUIBean
import com.google.zxing.BarcodeFormat import com.google.zxing.BarcodeFormat
import com.google.zxing.EncodeHintType import com.google.zxing.EncodeHintType
...@@ -92,7 +93,6 @@ object QRCodeUtils { ...@@ -92,7 +93,6 @@ object QRCodeUtils {
val splitList = subString.split(";") val splitList = subString.split(";")
val wifiUIBean = WifiUIBean() val wifiUIBean = WifiUIBean()
wifiUIBean.isCreateOrScan = false
val ssidKV = splitList.find { it.startsWith("S:") } ?: "" val ssidKV = splitList.find { it.startsWith("S:") } ?: ""
wifiUIBean.ssid = getPairKeyValue(ssidKV).second wifiUIBean.ssid = getPairKeyValue(ssidKV).second
...@@ -134,8 +134,6 @@ object QRCodeUtils { ...@@ -134,8 +134,6 @@ object QRCodeUtils {
val splitList = subString.split(";") val splitList = subString.split(";")
val emailUIBean = EmailUIBean() val emailUIBean = EmailUIBean()
emailUIBean.isCreateOrScan = false
val addressKV = splitList.find { it.startsWith("TO:") } ?: "" val addressKV = splitList.find { it.startsWith("TO:") } ?: ""
emailUIBean.address = getPairKeyValue(addressKV).second emailUIBean.address = getPairKeyValue(addressKV).second
......
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