Commit 349afaec authored by wanglei's avatar wanglei

...

parent ccaa799c
package com.base.scanqr.bean
abstract class ScanBean(
open class ScanBean(
val scanType: String = ""
) {
var createTime = 0L
......
......@@ -3,6 +3,7 @@ package com.base.scanqr.bean
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_WIFI
data class WifiUIBean(
var ssid: String = "",
var bssid: String = "",
......
package com.base.scanqr.ui.main
import android.graphics.Color
import androidx.core.content.ContextCompat
import androidx.core.view.updatePadding
import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.WifiUIBean
import com.base.scanqr.databinding.FragmentHistoryBinding
import com.base.scanqr.utils.BarUtils
import com.base.scanqr.utils.LogEx
import com.base.scanqr.utils.SpJsonUtils
import com.base.scanqr.utils.SpJsonUtils.SCAN_HISTORY_KEY
class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBinding::inflate) {
......@@ -16,5 +23,33 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
override fun initListener() {
super.initListener()
binding.tvScan.setOnClickListener {
scanUI()
}
binding.tvCreate.setOnClickListener {
createUI()
}
val wifiList = SpJsonUtils.getSpJsonList<WifiUIBean>(SCAN_HISTORY_KEY)
wifiList.forEach {
LogEx.logDebug(TAG, "${it.scanType} ${it.ssid} ${it.password}")
}
}
private fun scanUI() {
binding.tvScan.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10)
binding.tvScan.setTextColor(Color.parseColor("#FFFFFF"))
binding.tvCreate.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_transparent)
binding.tvCreate.setTextColor(Color.parseColor("#666666"))
}
private fun createUI() {
binding.tvCreate.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_6473f8_10)
binding.tvCreate.setTextColor(Color.parseColor("#FFFFFF"))
binding.tvScan.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_transparent)
binding.tvScan.setTextColor(Color.parseColor("#666666"))
}
}
\ No newline at end of file
......@@ -5,8 +5,10 @@ import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.scanqr.R
import com.base.scanqr.base.BaseActivity
import com.base.scanqr.bean.EmailUIBean
import com.base.scanqr.bean.ScanBean
import com.base.scanqr.bean.TextUIBean
import com.base.scanqr.bean.WifiUIBean
import com.base.scanqr.databinding.ActivityTextCodeBinding
import com.base.scanqr.ui.widget.InputNameDialog.showInputNameDialog
import com.base.scanqr.utils.BarUtils
......@@ -19,6 +21,7 @@ import com.base.scanqr.utils.SpJsonUtils
import com.base.scanqr.utils.SpJsonUtils.SCAN_HISTORY_KEY
import com.base.scanqr.utils.ToastUtils.toast
import java.io.File
import java.io.ObjectInput
class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeBinding::inflate) {
......
......@@ -67,7 +67,7 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
}
Thread {
val bitmap = generateQRCode(wifiContent, 735, 735, 5)
SpJsonUtils.addJsonBean<ScanBean>(SCAN_HISTORY_KEY, wifiBean)
SpJsonUtils.addJsonBean<WifiUIBean>(SCAN_HISTORY_KEY, wifiBean)
runOnUiThread {
binding.ivQr.setImageBitmap(bitmap)
val file = File(cacheDir, System.currentTimeMillis().toString() + ".jpg")
......
......@@ -2,19 +2,23 @@ package com.base.scanqr.utils
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import org.json.JSONObject
object SpJsonUtils {
val TAG = "SpJsonUtils"
const val SCAN_HISTORY_KEY = "scan_history_key"
fun <T> getSpJsonList(key: String): List<T> {
inline fun <reified T> getSpJsonList(key: String): List<T> {
val sp = AppPreferences.getInstance().getString(key, "")
return if (sp.equals("")) {
listOf()
} else {
val listType = object : TypeToken<List<T>>() {}.type
val users: List<T> = Gson().fromJson(sp, listType)
return users
val gson = Gson()
val type = object : TypeToken<List<T>>() {}.type
val list: List<T> = gson.fromJson(sp, type)
return list
}
}
......@@ -23,7 +27,7 @@ object SpJsonUtils {
AppPreferences.getInstance().put(key, json)
}
fun <T> addJsonBean(key: String, bean: T) {
inline fun <reified T> addJsonBean(key: String, bean: T) {
val arrayList = arrayListOf<T>()
val list = getSpJsonList<T>(key)
arrayList.addAll(list)
......@@ -31,7 +35,7 @@ object SpJsonUtils {
saveJsonBeanList(key, arrayList.toList())
}
fun <T> removeJsonBean(key: String, bean: T, removeIf: (it1: T, it2: T) -> Boolean) {
inline fun <reified T> removeJsonBean(key: String, bean: T, crossinline removeIf: (it1: T, it2: T) -> Boolean) {
val list = getSpJsonList<T>(key).toMutableList()
list.removeIf { removeIf(it, bean) }
saveJsonBeanList(key, list)
......
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