33 lines
765 B
Kotlin
33 lines
765 B
Kotlin
package uts.sdk.modules.masCodeScan
|
|||
|
|
|
||
|
|
import java.util.concurrent.ConcurrentLinkedQueue
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 连续扫码命中总线:Activity 入队,index.uts 轮询出队并触发 success。
|
||
|
|
*/
|
||
|
|
object CodeScanHitBus {
|
||
|
|
private val queue = ConcurrentLinkedQueue<Array<String>>()
|
||
|
|
|
||
|
|
@JvmStatic
|
||
|
|
fun detach() {
|
||
|
|
queue.clear()
|
||
|
|
}
|
||
|
|
|
||
|
|
@JvmStatic
|
||
|
|
fun emitHit(content: String, format: String, fromAlbum: Boolean) {
|
||
|
|
queue.offer(
|
||
|
|
arrayOf(
|
||
|
|
content,
|
||
|
|
format,
|
||
|
|
if (fromAlbum) "1" else "0"
|
||
|
|
)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
|
||
|
|
/** 取出一条命中:[content, format, fromAlbumFlag];无数据返回 null */
|
||
|
|
@JvmStatic
|
||
|
|
fun pollHit(): Array<String>? {
|
||
|
|
return queue.poll()
|
||
|
|
}
|
||
|
|
}
|