优化
This commit is contained in:
@@ -63,7 +63,7 @@ class DeviceInitActivity : BaseActivity<ActivityDeviceInitBinding>() {
|
||||
// }
|
||||
// }
|
||||
}.start()
|
||||
viewModel.getUserFaceCache()
|
||||
// viewModel.getUserFaceCache()
|
||||
viewModel.getDeviceConfig { deviceConfig ->
|
||||
runOnUiThread {
|
||||
if (deviceConfig == null) {
|
||||
|
||||
@@ -53,6 +53,7 @@ import com.sw.platecabinet.model.response.EquipmentUserInfo
|
||||
import com.sw.platecabinet.socket.LanServer
|
||||
import com.sw.platecabinet.socket.LanServerListenerImpl
|
||||
import com.sw.platecabinet.socket.TcpClient
|
||||
import com.sw.platecabinet.utils.Debouncer
|
||||
import com.sw.platecabinet.utils.IntervalExecutor
|
||||
import com.sw.platecabinet.utils.PermissionHelper
|
||||
import com.sw.platecabinet.utils.PlateUtils
|
||||
@@ -99,8 +100,8 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
}
|
||||
}
|
||||
|
||||
private var logList: MutableList<String> = mutableListOf()
|
||||
private val logAdapter by lazy { LogAdapter(logList) }
|
||||
// private var logList: MutableList<String> = mutableListOf()
|
||||
// private val logAdapter by lazy { LogAdapter(logList) }
|
||||
|
||||
override fun initialize() {
|
||||
instance = this
|
||||
@@ -126,23 +127,26 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
// binding.btnCollectFace.setOnClickListener { collectFace() }
|
||||
|
||||
|
||||
binding.rvLogInfo.let {
|
||||
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true)
|
||||
it.adapter = logAdapter
|
||||
}
|
||||
|
||||
binding.btnLogState.let {
|
||||
it.tag = false
|
||||
it.setImageResource(R.drawable.ic_log_show)
|
||||
it.setOnClickListener { v ->
|
||||
binding.rvLogInfo.visible()
|
||||
val state = it.tag.toString().toBooleanStrictOrNull() ?: false
|
||||
it.tag = state
|
||||
it.setImageResource(
|
||||
if (state) R.drawable.ic_log_hide else R.drawable.ic_log_show
|
||||
)
|
||||
}
|
||||
}
|
||||
// binding.rvLogInfo.let {
|
||||
// it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true)
|
||||
// it.adapter = logAdapter
|
||||
// }
|
||||
//
|
||||
// binding.btnLogState.let {
|
||||
// it.tag = false
|
||||
// it.setImageResource(R.drawable.ic_log_show)
|
||||
// it.setOnClickListener { v ->
|
||||
// binding.rvLogInfo.run {
|
||||
// val state = it.tag.toString().toBooleanStrictOrNull() ?: false
|
||||
// if (state) visible() else gone()
|
||||
// }
|
||||
// val state = it.tag.toString().toBooleanStrictOrNull() ?: false
|
||||
// it.tag = state
|
||||
// it.setImageResource(
|
||||
// if (state) R.drawable.ic_log_hide else R.drawable.ic_log_show
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
private fun checkCameraPermission() {
|
||||
@@ -230,6 +234,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
|
||||
recognizeViewModel.recognizeUserId.observe(this, Observer { result: CompareResult? ->
|
||||
Timber.i("recognizeUserId observe userId = ${result?.faceEntity?.userName}")
|
||||
// if (result?.faceEntity == null) {
|
||||
// collectFace()
|
||||
// return@Observer
|
||||
// }
|
||||
currentUserId = result?.faceEntity?.userName
|
||||
// viewModel.getUserInfoById(memberId = userId)
|
||||
// ToastUtils.showToast(currentUserId)
|
||||
@@ -263,11 +271,13 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
}
|
||||
|
||||
private var currentPlateInfo: EquipmentUserInfo? = null
|
||||
private var debouncer = Debouncer(5000)
|
||||
|
||||
/**
|
||||
* 打开餐盘柜
|
||||
*/
|
||||
private fun openPlate(userId: String?) {
|
||||
debouncer.debounce {
|
||||
Log.d(TAG, "openPlate: userId=$userId")
|
||||
getPlateData { items ->
|
||||
Log.d(TAG, "openPlate: items:${Gson().toJson(items)}")
|
||||
@@ -290,6 +300,9 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
currentPlateInfo = item
|
||||
MyApp.plateList = items
|
||||
SpTool.savePlateData(items)
|
||||
|
||||
debouncer.reset()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -594,7 +607,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
loadLogInfo("collectFace: -----------1,开始采集人脸,开始时间:${DateTimeUtils.getDateTimeString()}----------")
|
||||
if (isFirstOpen) return
|
||||
loadLogInfo("collectFace: ----------2,isFirstOpen=false-----------")
|
||||
logAdapter.addData("collectFace: ----------22222222,isFirstOpen=false-----------")
|
||||
if (facePreviewInfoList.isNullOrEmpty()) {
|
||||
loadLogInfo("collectFace: ----------3,未检测到人脸信息-----------")
|
||||
return
|
||||
@@ -605,8 +617,17 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
recognizeViewModel.updateRegisterStatus(REGISTER_STATUS_READY)
|
||||
loadLogInfo("collectFace: ----------5,人脸采集中-----------")
|
||||
getFaceData { faceData ->
|
||||
userFaceInfo = null
|
||||
// userFaceInfo = null
|
||||
Thread {
|
||||
val faceDao = FaceDatabase.getInstance(this).faceDao()
|
||||
val entity = faceDao.queryByUserName(tempUserId)
|
||||
if (entity != null) {
|
||||
//已存在用户
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------9,数据库已存在该人脸数据-----------")
|
||||
return@Thread
|
||||
}
|
||||
saveFaceInfo(faceData)
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -628,12 +649,15 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
// toast("您已采集过人脸信息")
|
||||
// return@startIntervalTask
|
||||
// }
|
||||
loadLogInfo("collectFace,getFaceData: ----------6,正在获人脸取特征数据")
|
||||
// loadLogInfo("collectFace,getFaceData: ----------6,正在获人脸取特征数据")
|
||||
if (userFaceInfo == null) {
|
||||
return@startIntervalTask
|
||||
}
|
||||
loadLogInfo("collectFace,getFaceData: ----------7,拿到人脸取特征数据-----------")
|
||||
val faceData = Base64.encode(userFaceInfo!!.faceFeature!!.featureData)
|
||||
val faceData: String? = Base64.encode(userFaceInfo?.faceFeature?.featureData)
|
||||
if (faceData.isNullOrBlank()) {
|
||||
return@startIntervalTask
|
||||
}
|
||||
block(faceData)
|
||||
checkFaceJob?.cancel()
|
||||
job?.cancel()
|
||||
@@ -643,7 +667,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
|
||||
private fun loadLogInfo(msg: String) {
|
||||
Log.d(TAG, msg)
|
||||
logAdapter.addData(msg)
|
||||
// logAdapter.addData(msg)
|
||||
}
|
||||
|
||||
private var facePreviewInfoList: MutableList<FacePreviewInfo>? = null
|
||||
@@ -673,16 +697,18 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
}
|
||||
|
||||
private fun saveFaceInfo(faceData: String) {
|
||||
Thread {
|
||||
try {
|
||||
checkFaceJob?.cancel()
|
||||
|
||||
sendFaceData(faceData)
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------12,人脸数据发送完成时间:${DateTimeUtils.getDateTimeString()}-----------")
|
||||
|
||||
runOnUiThread {
|
||||
openPlate(tempUserId)
|
||||
}
|
||||
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------8,保存人脸取特征数据-----------")
|
||||
val faceDao = FaceDatabase.getInstance(this).faceDao()
|
||||
val entity = faceDao.queryByUserName(tempUserId)
|
||||
if (entity != null) {
|
||||
//已存在用户
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------9,数据库已存在该人脸数据-----------")
|
||||
return@Thread
|
||||
}
|
||||
val faceEntity = FaceEntity(
|
||||
tempUserId,
|
||||
null,
|
||||
@@ -694,8 +720,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------10,人脸数据保存完成-----------")
|
||||
recognizeViewModel.refreshFaceList()
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------11,刷新人脸数据-----------")
|
||||
sendFaceData(faceData)
|
||||
loadLogInfo("collectFace,saveFaceInfo: ----------12,人脸数据发送完成时间:${DateTimeUtils.getDateTimeString()}-----------")
|
||||
loadLogInfo("---------------------------------")
|
||||
collectCount = 0
|
||||
} catch (e: Exception) {
|
||||
@@ -709,7 +733,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
ToastUtils.showToast("人脸采集异常:${e.message}")
|
||||
}
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
private var collectCount = 0;
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.sw.platecabinet.adapter
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.sw.platecabinet.databinding.ListItemLogInfoBinding
|
||||
|
||||
class LogAdapter(var list: MutableList<String>) : RecyclerView.Adapter<LogAdapter.ViewHolder> {
|
||||
class LogAdapter(var list: MutableList<String>) : RecyclerView.Adapter<LogAdapter.ViewHolder>() {
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
holder.binding.tvLogText.text = list[position]
|
||||
@@ -23,8 +25,10 @@ class LogAdapter(var list: MutableList<String>) : RecyclerView.Adapter<LogAdapte
|
||||
RecyclerView.ViewHolder(binding.root)
|
||||
|
||||
fun addData(logInfo: String) {
|
||||
list.add(logInfo)
|
||||
notifyDataSetChanged()
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
// list.add(logInfo)
|
||||
// notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -115,7 +115,11 @@ class CrashHandler private constructor(private val context: Context) :
|
||||
collectDeviceInfo(this)
|
||||
|
||||
// 收集应用日志
|
||||
try {
|
||||
append("\n\n").append(collectLogs())
|
||||
} catch (e: OutOfMemoryError) {
|
||||
append("collectLogs发生OutOfMemoryError:${e.message}")
|
||||
}
|
||||
|
||||
// 收集线程和异常信息
|
||||
append("\n\n========== Thread & Exception Info ==========\n")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:layout_marginVertical="10dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="26sp"
|
||||
android:textSize="20sp"
|
||||
tools:text="log" />
|
||||
|
||||
<View
|
||||
|
||||
@@ -473,9 +473,7 @@ public class RecognizeViewModel extends ViewModel implements RecognizeCallback {
|
||||
public void onRecognized(CompareResult compareResult, Integer live, boolean similarPass) {
|
||||
Disposable disposable = Observable.just(true).observeOn(AndroidSchedulers.mainThread()).subscribe(aBoolean -> {
|
||||
if (similarPass) {
|
||||
if (recognizeUserId != null) {
|
||||
recognizeUserId.postValue(compareResult);
|
||||
}
|
||||
boolean isAdded = false;
|
||||
List<CompareResult> compareResults = compareResultList.getValue();
|
||||
if (compareResults != null && !compareResults.isEmpty()) {
|
||||
@@ -497,6 +495,8 @@ public class RecognizeViewModel extends ViewModel implements RecognizeCallback {
|
||||
getFaceItemEventMutableLiveData().postValue(new FaceItemEvent(compareResults.size() - 1, EventType.INSERTED));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// recognizeUserId.postValue(new CompareResult(null, 0f));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user