增加人脸采集功能;
识别人脸成功后打开有餐盘的第一个柜子; 扫码打开已绑定的柜子,无则打开第一个空柜子并放入餐盘; 设置页面问题优化;
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package com.sw.platecabinet.utils
|
||||
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onCompletion
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.onStart
|
||||
import kotlin.ranges.downTo
|
||||
|
||||
// 倒计时Flow扩展函数
|
||||
fun countDownByFlow(
|
||||
total: Int,
|
||||
scope: CoroutineScope,
|
||||
onTick: (Int) -> Unit,
|
||||
onStart: (() -> Unit)? = null,
|
||||
onFinish: (() -> Unit)? = null
|
||||
): Job {
|
||||
return flow {
|
||||
for (i in total downTo 0) {
|
||||
emit(i)
|
||||
if (i != 0) delay(1000)
|
||||
}
|
||||
}.flowOn(Dispatchers.Main)
|
||||
.onStart { onStart?.invoke() }
|
||||
.onCompletion { onFinish?.invoke() }
|
||||
.onEach { onTick.invoke(it) }
|
||||
.launchIn(scope)
|
||||
}
|
||||
Reference in New Issue
Block a user