diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 85a7f80..988f6f3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -98,4 +98,6 @@ dependencies { implementation(libs.core) implementation(libs.android.core) + + implementation("org.greenrobot:eventbus:3.3.1") } \ No newline at end of file diff --git a/app/src/main/java/com/sw/platecabinet/activity/InitActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/InitActivity.kt index 1a05d41..279c375 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/InitActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/InitActivity.kt @@ -1,7 +1,12 @@ package com.sw.platecabinet.activity +import androidx.lifecycle.lifecycleScope +import com.sw.plate.utils.arcface.FaceApi +import com.sw.plate.utils.arcface.faceserver.FaceServer import com.sw.platecabinet.databinding.ActivityInitBinding import com.sw.platecabinet.databinding.ItemTitleTimeBinding +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch /** * 待机界面 @@ -19,6 +24,14 @@ class InitActivity : BaseActivity() { binding.main.setOnClickListener { finish() } +// binding.takeButton.setOnClickListener { +// +// lifecycleScope.launch(Dispatchers.IO) { +// FaceApi().deleteByUserName("288") +// } +// +// finish() +// } } 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 1a412a9..6efff03 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -26,6 +26,7 @@ import com.sw.plate.utils.arcface.camera.DualCameraHelper import com.sw.plate.utils.arcface.face.constants.LivenessType import com.sw.plate.utils.arcface.face.model.FacePreviewInfo import com.sw.plate.utils.arcface.face.model.RecognizeConfiguration +import com.sw.plate.utils.arcface.facedb.entity.FaceEntity import com.sw.plate.utils.arcface.viewmodel.RecognizeViewModel import com.sw.platecabinet.R import com.sw.platecabinet.databinding.ActivityLoginFaceBinding @@ -33,6 +34,9 @@ import com.sw.platecabinet.databinding.ItemTitleTimeBinding import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.network.task.TaskManager import com.sw.platecabinet.utils.PermissionHelper +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode import timber.log.Timber /** @@ -83,6 +87,8 @@ class LoginByFaceActivity : BaseActivity(), // TODO: 测试请求 TaskManager.startTask() + + EventBus.getDefault().register(this) } private fun checkCameraPermission() { @@ -101,6 +107,13 @@ class LoginByFaceActivity : BaseActivity(), permissionHelper.checkAndRequest() } + @Subscribe(threadMode = ThreadMode.MAIN) + fun getFaceEntity(insertEntity: FaceEntity) { + Timber.tag("performSync").e("-time=%s", insertEntity.registerTime) + recognizeViewModel.addFace(insertEntity) + Timber.tag("performSync over").e("-time=%s", insertEntity.registerTime) + } + override fun onLeftDoubleClick() { finish() } @@ -180,6 +193,7 @@ class LoginByFaceActivity : BaseActivity(), recognizeViewModel.destroy() + EventBus.getDefault().unregister(this) super.onDestroy() } diff --git a/app/src/main/java/com/sw/platecabinet/network/task/HeartBeatTask.kt b/app/src/main/java/com/sw/platecabinet/network/task/HeartBeatTask.kt index badfafa..15f097a 100644 --- a/app/src/main/java/com/sw/platecabinet/network/task/HeartBeatTask.kt +++ b/app/src/main/java/com/sw/platecabinet/network/task/HeartBeatTask.kt @@ -16,6 +16,7 @@ import com.sw.platecabinet.network.ApiClient import com.sw.platecabinet.repository.RemoteRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.greenrobot.eventbus.EventBus import timber.log.Timber class HeartBeatTask(appContext: Context, workerParams: WorkerParameters) : @@ -84,11 +85,14 @@ class HeartBeatTask(appContext: Context, workerParams: WorkerParameters) : } } else if (it.faceType == "0") { //新增人脸数据 - val featureData = Base64.decode(it.faceFeatureString) + val featureData = Base64.decode(it.faceFeature) val insertEntity = FaceEntity(it.userId, null, featureData) val faceId = faceApi.insert(insertEntity) insertEntity.faceId = faceId - faceServer.registerFaceFeatureInfoFromDb(insertEntity, faceEngine) +// faceServer.registerFaceFeatureInfoFromDb(insertEntity, faceEngine) + + EventBus.getDefault().post(insertEntity) +// callback(insertEntity) } } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/java/com/sw/platecabinet/network/task/TaskManager.kt b/app/src/main/java/com/sw/platecabinet/network/task/TaskManager.kt index 150c337..0f590b7 100644 --- a/app/src/main/java/com/sw/platecabinet/network/task/TaskManager.kt +++ b/app/src/main/java/com/sw/platecabinet/network/task/TaskManager.kt @@ -1,20 +1,34 @@ package com.sw.platecabinet.network.task +import androidx.lifecycle.LifecycleOwner import androidx.work.ExistingWorkPolicy import androidx.work.OneTimeWorkRequestBuilder +import androidx.work.WorkInfo import androidx.work.WorkManager import com.sw.plate.App import java.util.concurrent.TimeUnit object TaskManager { private const val TASK_NAME = "SmartPlateCabinetTask" - +// private var owner: LifecycleOwner?=null +// fun setOwner(owner: LifecycleOwner) { +// this.owner = owner +// } fun startTask() { val nextRequest = OneTimeWorkRequestBuilder() .setInitialDelay(1, TimeUnit.MINUTES) // .setInputData(inputData) .build() WorkManager.getInstance(App.getContext()) +// .apply{ +// getWorkInfoByIdLiveData(nextRequest.id) +// .observe(owner) { workInfo -> +// if (workInfo?.state == WorkInfo.State.SUCCEEDED) { +// val result = workInfo.outputData.getString("RESULT_KEY") +// // 使用返回的结果 +// } +// } +// } .enqueueUniqueWork(TASK_NAME, ExistingWorkPolicy.REPLACE, nextRequest) } diff --git a/app/src/main/res/layout/activity_init.xml b/app/src/main/res/layout/activity_init.xml index cc7adf0..0c5aa80 100644 --- a/app/src/main/res/layout/activity_init.xml +++ b/app/src/main/res/layout/activity_init.xml @@ -43,7 +43,7 @@ -