Browse Source

扫码完成后清空缓存数据

cc12458 9 tháng trước cách đây
mục cha
commit
f901cdb29e

+ 2 - 0
app/src/main/java/com/hzliuzhi/applet/container/MainActivity.kt

@@ -77,6 +77,8 @@ class MainActivity : AndroidActivity() {
           val event = Message(type = "scan", payload = it).toWebEvent()
           SharedFlowHub.emit(event)
         }
+        // 处理完后清空缓存
+        Scanner.getInstance(context).clear()
       }
       Scanner.getInstance(context).eventHandle(rememberCoroutineScope())
 

+ 5 - 1
library/device/scanner/src/main/java/com/hzliuzhi/applet/scanner/Scanner.kt

@@ -30,7 +30,7 @@ class Scanner private constructor(context: Context, private val impl: ScannerImp
     receiver = impl.registerReceiver(applicationContext) {
       scanTimeout?.cancel()
       if (callback == null) it?.takeIf { it.code.isNotEmpty() }.also { value = it }
-      else Payload.data(it, message = "[scan:start] 扫码开始").toJson()?.let { it1 -> callback?.invoke(it1) }
+      else Payload.data(it, message = "[scan:start] 扫码开始").toJson()?.let { it1 -> callback?.invoke(it1).also { clear() } }
 
       scanTimeout = null
       callback = null
@@ -83,6 +83,10 @@ class Scanner private constructor(context: Context, private val impl: ScannerImp
 
   fun start(params: ScanParams = ScanParams()) = impl.start(applicationContext, params)
 
+  fun clear() {
+    if (value != null) postValue(null)
+  }
+
   companion object {
     @Volatile
     private var instance: Scanner? = null