diff --git a/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt index a984522..d4eaced 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/BaseActivity.kt @@ -419,16 +419,17 @@ abstract class BaseActivity : AppCompatActivity() { // private val dealyMillis = 10 * 60 * 1000L private val initialDelay = 5 * 60 * 1000L private val dealyMillis = 5 * 60 * 1000L - fun startFaceTask() { + fun startFaceTask(block: (List) -> Unit) { faceTaskJob = intervalExecutor.startIntervalTaskWithInitialDelay(initialDelay, dealyMillis) { - getFaceIncrementList() + getFaceIncrementList(action = block) } } private var faceTimestamp = 0L + //private var taskPageNo = 1 - private fun getFaceIncrementList(pageNo: Int = 1) { + private fun getFaceIncrementList(pageNo: Int = 1, action:(List)-> Unit) { val timestamp = SpTool.lastFaceTimestamp if (timestamp == 0L) { return @@ -443,6 +444,8 @@ abstract class BaseActivity : AppCompatActivity() { return@runOnUiThread } updateFaceData(list) + val userIdList = list.map { it.userId } + action(userIdList) //if (list.size >= settingViewModel.PAGE_SIZE) { // faceTimestamp = list.last().faceUpdateTimestamp ?: 0 // taskPageNo++ @@ -461,22 +464,26 @@ abstract class BaseActivity : AppCompatActivity() { private fun updateFaceData(list: List) { Thread { val faceList = mutableListOf() + val faceDao = FaceDatabase.getInstance(this).faceDao() try { list.forEach { model -> if (model.faceDeleted == true) { //删除数据 - FaceDatabase.getInstance(this).faceDao().deleteFaceById(model.userId) + faceDao.deleteFaceById(model.userId) } else { - //保存数据 - val faceEntity = FaceEntity( - model.userId, - null, - Base64.decode(model.faceFeatureStr) - ).also { - //1-会员、2-临时用户 - it.userType = if (model.isMember) "1" else "2" + val faceData = faceDao.queryByUserName(model.userId) + if (faceData == null) { + //保存数据 + val faceEntity = FaceEntity( + model.userId, + null, + Base64.decode(model.faceFeatureStr) + ).also { + //1-会员、2-临时用户 + it.userType = if (model.isMember) "1" else "2" + } + faceList.add(faceEntity) } - faceList.add(faceEntity) } } } catch (e: Exception) { diff --git a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt index 73a9abd..a372e02 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/DeviceInitActivity.kt @@ -53,10 +53,11 @@ class DeviceInitActivity : BaseActivity() { userViewModel.getUserFaceCache { status, msg -> getDeviceConfig() } + } else { + getDeviceConfig() } } } - getDeviceConfig() } private fun getDeviceConfig() { diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index 3ca56e5..6e906b0 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -138,7 +138,9 @@ class LoginByFaceActivity : BaseActivity(), // } //开启人脸增量数据定时任务 - startFaceTask() + startFaceTask { + loadLogInfo("collectFace增量接口数据用户id:${Gson().toJson(it)}") + } val soundMap = hashMapOf() soundMap[COLLECT_SUCCESS] = R.raw.collect_success @@ -827,31 +829,33 @@ class LoginByFaceActivity : BaseActivity(), private var currentUserId: String? = null private fun saveFaceInfo(faceModel: UserFaceModel) { - try { - loadLogInfo("collectFace,saveFaceInfo: ----------8,保存人脸取特征数据-----------") - val faceDao = FaceDatabase.getInstance(this).faceDao() - val faceEntity = FaceEntity( - faceModel.userId, - null, - Base64.decode(faceModel.faceFeatureStr) - ).also { - //1-会员、2-临时用户 - it.userType = if (faceModel.isMember) "1" else "2" + Thread { + try { + loadLogInfo("collectFace,saveFaceInfo: ----------8,保存人脸取特征数据-----------") + val faceDao = FaceDatabase.getInstance(this).faceDao() + val faceEntity = FaceEntity( + faceModel.userId, + null, + Base64.decode(faceModel.faceFeatureStr) + ).also { + //1-会员、2-临时用户 + it.userType = if (faceModel.isMember) "1" else "2" + } + faceDao.insert(faceEntity) + loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------") + recognizeViewModel.refreshFaceList() + loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------") + runOnUiThread { recognizeViewModel.onPreviewFrame(ByteArray(1382400), true) } + loadLogInfo("---------------------------------") + collectCount = 0 + } catch (e: Exception) { + e.printStackTrace() + loadLogInfo("collectFace,saveFaceInfo: ----------13,人脸采集异常:${e.message}-----------") + collectCount++ + loadLogInfo("collectFace,saveFaceInfo: ----------14,${collectCount}次人脸采集异常:${e.message}-----------") + ToastUtils.showToast("人脸采集异常:${e.message}") } - faceDao.insert(faceEntity) - loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------") - recognizeViewModel.refreshFaceList() - loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------") - runOnUiThread { recognizeViewModel.onPreviewFrame(ByteArray(1382400), true) } - loadLogInfo("---------------------------------") - collectCount = 0 - } catch (e: Exception) { - e.printStackTrace() - loadLogInfo("collectFace,saveFaceInfo: ----------13,人脸采集异常:${e.message}-----------") - collectCount++ - loadLogInfo("collectFace,saveFaceInfo: ----------14,${collectCount}次人脸采集异常:${e.message}-----------") - ToastUtils.showToast("人脸采集异常:${e.message}") - } + }.start() } private var collectCount = 0 diff --git a/app/src/main/res/layout/dialog_custom.xml b/app/src/main/res/layout/dialog_custom.xml index 7252e2d..41e2d34 100644 --- a/app/src/main/res/layout/dialog_custom.xml +++ b/app/src/main/res/layout/dialog_custom.xml @@ -26,9 +26,11 @@ diff --git a/app/src/main/res/layout/dialog_waiting.xml b/app/src/main/res/layout/dialog_waiting.xml index b4cab5f..a0ee5b6 100644 --- a/app/src/main/res/layout/dialog_waiting.xml +++ b/app/src/main/res/layout/dialog_waiting.xml @@ -1,31 +1,29 @@ + android:layout_width="wrap_content" + android:layout_height="wrap_content"> - + - - - + \ No newline at end of file