打开app不再清除本地数据,不再发送数据到结算终端,改为新增人脸采集接口,全量增量接口优化
This commit is contained in:
@@ -4,6 +4,11 @@ import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* 设置 TextView 的双击和单击事件监听器
|
||||
@@ -30,4 +35,38 @@ fun TextView.setClickListeners(
|
||||
clickCount = 0 // 重置计数
|
||||
}, doubleClickInterval)
|
||||
}
|
||||
}
|
||||
|
||||
fun View.clickWithCoroutines(
|
||||
doubleClickInterval: Long = 300,
|
||||
onDoubleClick: (View) -> Unit = {},
|
||||
onSingleClick: (View) -> Unit = {}
|
||||
) {
|
||||
var pendingItem: View? = null
|
||||
var lastClickTime: Long = 0
|
||||
var clickJob: Job? = null
|
||||
|
||||
setOnClickListener { view ->
|
||||
val currentTime = System.currentTimeMillis()
|
||||
|
||||
// 如果是同一控件且在双击间隔内,则判定为双击
|
||||
if (pendingItem === view && currentTime - lastClickTime < doubleClickInterval) {
|
||||
// 取消之前的单击任务
|
||||
clickJob?.cancel()
|
||||
onDoubleClick(view)
|
||||
pendingItem = null
|
||||
} else {
|
||||
// 取消之前的单击任务
|
||||
clickJob?.cancel()
|
||||
|
||||
// 启动新的单击任务
|
||||
clickJob = CoroutineScope(Dispatchers.Main).launch {
|
||||
delay(doubleClickInterval)
|
||||
onSingleClick(view)
|
||||
}
|
||||
|
||||
pendingItem = view
|
||||
lastClickTime = currentTime
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user