Commit c08a3ed7 authored by wanglei's avatar wanglei

...

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