|
@@ -30,7 +30,7 @@ class Scanner private constructor(context: Context, private val impl: ScannerImp
|
|
|
receiver = impl.registerReceiver(applicationContext) {
|
|
receiver = impl.registerReceiver(applicationContext) {
|
|
|
scanTimeout?.cancel()
|
|
scanTimeout?.cancel()
|
|
|
if (callback == null) it?.takeIf { it.code.isNotEmpty() }.also { value = it }
|
|
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
|
|
scanTimeout = null
|
|
|
callback = 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 start(params: ScanParams = ScanParams()) = impl.start(applicationContext, params)
|
|
|
|
|
|
|
|
|
|
+ fun clear() {
|
|
|
|
|
+ if (value != null) postValue(null)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
companion object {
|
|
companion object {
|
|
|
@Volatile
|
|
@Volatile
|
|
|
private var instance: Scanner? = null
|
|
private var instance: Scanner? = null
|