优化
This commit is contained in:
@@ -152,32 +152,17 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
box = ObjectBox.boxStore.boxFor(Food::class)
|
box = ObjectBox.boxStore.boxFor(Food::class)
|
||||||
isPageVisible = true
|
isPageVisible = true
|
||||||
addBackEventListener()
|
addBackEventListener()
|
||||||
//FoodModule.init(this)
|
|
||||||
initView()
|
initView()
|
||||||
viewModel.getUserFaceCache(pageNo = 1)
|
viewModel.getUserFaceCache(pageNo = 1)
|
||||||
//setupSecondaryDisplay()
|
|
||||||
setupCamera()
|
setupCamera()
|
||||||
//presentation?.step1FoodRecognizing()
|
|
||||||
initData()
|
initData()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initData() {
|
private fun initData() {
|
||||||
// viewModel.getEquipmentToken()
|
|
||||||
//viewModel.getUserFaceCache2()
|
|
||||||
|
|
||||||
startFaceTask()
|
startFaceTask()
|
||||||
|
|
||||||
// addSocketListener()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initView() {
|
private fun initView() {
|
||||||
// // 在Activity中获取DPI
|
|
||||||
// val metrics = getResources()?.displayMetrics
|
|
||||||
// val screenDPI = metrics?.densityDpi
|
|
||||||
// val density = metrics?.density
|
|
||||||
//
|
|
||||||
// Log.d("ScreenInfo", "DPI: $screenDPI, density: $density");
|
|
||||||
|
|
||||||
viewModel.getDeviceConfig { deviceConfig ->
|
viewModel.getDeviceConfig { deviceConfig ->
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
if (deviceConfig == null) {
|
if (deviceConfig == null) {
|
||||||
@@ -193,13 +178,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
updateDateTime()
|
updateDateTime()
|
||||||
binding.ivSetting.setOnClickListener {
|
binding.ivSetting.setOnClickListener {
|
||||||
startActivity(Intent(this, SettingActivity::class.java))
|
startActivity(Intent(this, SettingActivity::class.java))
|
||||||
//finish()
|
|
||||||
}
|
}
|
||||||
//binding.foodDisplayLayout.setOnClickListener {
|
|
||||||
// val intent = Intent(this, FoodCollectionActivity::class.java)
|
|
||||||
// startActivity(intent)
|
|
||||||
// finish()
|
|
||||||
//}
|
|
||||||
binding.previewView.outlineProvider = object : ViewOutlineProvider() {
|
binding.previewView.outlineProvider = object : ViewOutlineProvider() {
|
||||||
override fun getOutline(view: View, outline: Outline) {
|
override fun getOutline(view: View, outline: Outline) {
|
||||||
outline.setRoundRect(0, 0, view.width, view.height, 12f.dp)
|
outline.setRoundRect(0, 0, view.width, view.height, 12f.dp)
|
||||||
@@ -219,52 +198,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
bottomSheetDialog!!.show(supportFragmentManager, "CustomBottomSheetDialog")
|
bottomSheetDialog!!.show(supportFragmentManager, "CustomBottomSheetDialog")
|
||||||
}
|
}
|
||||||
|
|
||||||
//val spinnerAdapter = ArrayAdapter<String>(
|
|
||||||
// this,
|
|
||||||
// R.layout.item_for_custom_spinner,
|
|
||||||
// arrayOf("即放即取", "余量取餐")
|
|
||||||
//)
|
|
||||||
//binding.spinner.adapter = spinnerAdapter
|
|
||||||
// val mode = SPUtil.getInstance().get(GlobalKey.KEY_PICKUP_MODE, 0)
|
|
||||||
// //binding.spinner.setSelection(mode ?: 0)
|
|
||||||
// presentation?.updateMealPickupMode(mode ?: 0)
|
|
||||||
//binding.spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
|
||||||
// override fun onItemSelected(
|
|
||||||
// parent: AdapterView<*>?,
|
|
||||||
// view: View?,
|
|
||||||
// position: Int,
|
|
||||||
// id: Long
|
|
||||||
// ) {
|
|
||||||
// SPUtil.getInstance().put(GlobalKey.KEY_PICKUP_MODE, position)
|
|
||||||
// updateCurrentFood(null)
|
|
||||||
// isRecognitionFood = true
|
|
||||||
// presentation?.updateMealPickupMode(position)
|
|
||||||
//
|
|
||||||
// SensorScaleUtils.zero()
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override fun onNothingSelected(parent: AdapterView<*>?) {}
|
|
||||||
//}
|
|
||||||
//adapter = createAdapter()
|
|
||||||
binding.recyclerview.let {
|
binding.recyclerview.let {
|
||||||
it.layoutManager = GridLayoutManager(this, 2)
|
it.layoutManager = GridLayoutManager(this, 2)
|
||||||
it.adapter = adapter
|
it.adapter = adapter
|
||||||
}
|
}
|
||||||
// 添加间距装饰(12dp)
|
|
||||||
//binding.recyclerview.addItemDecoration(
|
|
||||||
// GridSpacingItemDecoration(
|
|
||||||
// spanCount = 2,
|
|
||||||
// spacing = dpToPx(30),
|
|
||||||
// includeEdge = false // 包含边缘间距
|
|
||||||
// )
|
|
||||||
//)
|
|
||||||
//binding.recyclerview.adapter = adapter
|
|
||||||
binding.tvFoodName.setOnClickListener {
|
binding.tvFoodName.setOnClickListener {
|
||||||
SensorScaleUtils.zero()
|
SensorScaleUtils.zero()
|
||||||
}
|
}
|
||||||
// binding.tvRescan.setOnClickListener {
|
|
||||||
// debouncer.debounce { recognizeFood() }
|
|
||||||
// }
|
|
||||||
binding.btnPay.setOnClickListener {
|
binding.btnPay.setOnClickListener {
|
||||||
clickPayButton()
|
clickPayButton()
|
||||||
}
|
}
|
||||||
@@ -277,7 +217,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
binding.previewView.visibility = View.VISIBLE
|
binding.previewView.visibility = View.VISIBLE
|
||||||
binding.ivImg.visibility = View.GONE
|
binding.ivImg.visibility = View.GONE
|
||||||
resumeAnalysis()
|
resumeAnalysis()
|
||||||
// viewModel.cleanIdentifiedFoodInfoList()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
pauseAnalysis()
|
pauseAnalysis()
|
||||||
@@ -289,16 +228,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
binding.tvFoodName.text = foodInfo.foodName
|
binding.tvFoodName.text = foodInfo.foodName
|
||||||
binding.previewView.gone()
|
binding.previewView.gone()
|
||||||
binding.ivImg.visible()
|
binding.ivImg.visible()
|
||||||
// if (foodInfo.foodImg.isNullOrBlank()) {
|
|
||||||
// takePhoto(successCallback = { imgUri ->
|
|
||||||
// binding.ivImg.load(imgUri)
|
|
||||||
// presentation?.updateFood(foodInfo.copy(foodImg = imgUri.toString()))
|
|
||||||
// }, failureCallback = {
|
|
||||||
//
|
|
||||||
// })
|
|
||||||
// } else {
|
|
||||||
// binding.ivImg.load(foodInfo.foodImg)
|
|
||||||
// }
|
|
||||||
binding.ivImg.load(foodInfo.foodImg)
|
binding.ivImg.load(foodInfo.foodImg)
|
||||||
//pauseAnalysis()
|
//pauseAnalysis()
|
||||||
}
|
}
|
||||||
@@ -309,27 +238,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
|
|
||||||
override fun registerDataChange() {
|
override fun registerDataChange() {
|
||||||
super.registerDataChange()
|
super.registerDataChange()
|
||||||
//// lifecycleScope.launch {
|
|
||||||
//// viewModel.identifiedFoodInfoList2.collect { list ->
|
|
||||||
//// updateFoodInfo(list)
|
|
||||||
//// }
|
|
||||||
//// }
|
|
||||||
// lifecycleScope.launch {
|
|
||||||
// viewModel.identifiedFoodInfoList.collect { list ->
|
|
||||||
// //adapter.updateData(list)
|
|
||||||
// searchFoodList.clear()
|
|
||||||
// searchFoodList.addAll(list)
|
|
||||||
// adapter.notifyDataSetChanged()
|
|
||||||
//
|
|
||||||
// if (list.isNotEmpty()) {
|
|
||||||
// checkedItem = list[0]
|
|
||||||
// checkedItem!!.photoUri = lastPhotoUri
|
|
||||||
// updateCurrentFood(checkedItem)
|
|
||||||
// lastPhotoUri = null
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
SensorScaleUtils.addWeightListener { weight ->
|
SensorScaleUtils.addWeightListener { weight ->
|
||||||
Timber.d("registerDataChange weight = $weight")
|
Timber.d("registerDataChange weight = $weight")
|
||||||
if (isPageVisible.not() || isStartRecognize.not()) {
|
if (isPageVisible.not() || isStartRecognize.not()) {
|
||||||
@@ -450,34 +358,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private fun createAdapter(): GenericItemAdapter<FoodInfo, ItemFoodInfoBinding> {
|
|
||||||
// return GenericItemAdapter(
|
|
||||||
// items = emptyList(),
|
|
||||||
// bindingInflater = ItemFoodInfoBinding::inflate,
|
|
||||||
// bindCallback = { item, position ->
|
|
||||||
// val score = (item.score / 100.0).format2String(2)
|
|
||||||
// this.tvName.text = "${item.foodName}\n${score}%"
|
|
||||||
// if (item.id != checkedItem?.id) {
|
|
||||||
// this.tvName.typeface = Typeface.defaultFromStyle(Typeface.NORMAL)
|
|
||||||
// this.tvName.setTextColor(resources.getColor(R.color.identify_normal))
|
|
||||||
// this.llRoot.setBackgroundResource(R.drawable.grid_item_normal)
|
|
||||||
// } else {
|
|
||||||
// this.tvName.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
|
|
||||||
// this.tvName.setTextColor(resources.getColor(R.color.identify_checked))
|
|
||||||
// this.llRoot.setBackgroundResource(R.drawable.grid_item_checked)
|
|
||||||
// }
|
|
||||||
////
|
|
||||||
// this.llRoot.setOnClickListener {
|
|
||||||
// Timber.d("itemClick ${item.foodName}, position = $position")
|
|
||||||
// item.photoUri = null
|
|
||||||
// checkedItem = item
|
|
||||||
// adapter.notifyDataSetChanged()
|
|
||||||
// updateCurrentFood(item)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// )
|
|
||||||
// }
|
|
||||||
|
|
||||||
private fun setupCamera() {
|
private fun setupCamera() {
|
||||||
Timber.d("setupCamera")
|
Timber.d("setupCamera")
|
||||||
cameraProviderFuture = ProcessCameraProvider.getInstance(this)
|
cameraProviderFuture = ProcessCameraProvider.getInstance(this)
|
||||||
@@ -649,20 +529,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
}
|
}
|
||||||
show()
|
show()
|
||||||
}
|
}
|
||||||
//SecondaryScreenPresentation(
|
|
||||||
// activity = this,
|
|
||||||
// this,
|
|
||||||
// display = secondaryDisplay,
|
|
||||||
// viewModel = viewModel,
|
|
||||||
// recognizeViewModel = viewModels<RecognizeViewModel>().value
|
|
||||||
//)
|
|
||||||
// presentation!!.setStepChangeCallback { step ->
|
|
||||||
// if (step == 1) {
|
|
||||||
// Timber.d("setStepChangeCallback${step}")
|
|
||||||
// updateCurrentFood(null)
|
|
||||||
// bottomSheetDialog?.dismiss()
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
@@ -721,13 +587,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// fun retry() {
|
|
||||||
// val weight = lastWeight
|
|
||||||
// lastWeight = 0.0
|
|
||||||
// presentation?.hideRecImage()
|
|
||||||
// recognizeByWeight(weight, true)
|
|
||||||
// }
|
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
isPageVisible = false
|
isPageVisible = false
|
||||||
@@ -1127,91 +986,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
|||||||
|
|
||||||
private var tcpClient: TcpClient? = null
|
private var tcpClient: TcpClient? = null
|
||||||
|
|
||||||
// private fun addSocketListener() {
|
|
||||||
// //val ipAddress = NetworkUtils.getIPAddress(true)
|
|
||||||
// //Log.d(TAG, "addSocketListener,ipAddress: $ipAddress");
|
|
||||||
// tcpClient = TcpClient(
|
|
||||||
// "192.168.1.95",
|
|
||||||
// 5000,
|
|
||||||
// GlobalData.deviceId, // clientId
|
|
||||||
// 5000, // connectTimeoutMs
|
|
||||||
// 10 * 1000, // heartbeatIntervalMs
|
|
||||||
// 30 * 1000 // heartbeatTimeoutMs
|
|
||||||
// )
|
|
||||||
//
|
|
||||||
// tcpClient?.setListener(object : TcpClientListenerImpl() {
|
|
||||||
// override fun onSendSuccess(json: JSONObject?) {
|
|
||||||
// super.onSendSuccess(json)
|
|
||||||
//// toast("发送成功")
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override fun onSendFailed(json: JSONObject?, e: java.lang.Exception?) {
|
|
||||||
// super.onSendFailed(json, e)
|
|
||||||
// ToastUtils.showToast("发送失败${e?.message}")
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// override fun onMessage(json: JSONObject?) {
|
|
||||||
// super.onMessage(json)
|
|
||||||
// json?.let { receiveMessage(json!!) }
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// tcpClient?.start();
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// LanServer.getInstance().let {
|
|
||||||
// it.setListener(object : LanServerListenerImpl() {
|
|
||||||
// override fun onMessageReceived(clientId: String?, message: JSONObject?) {
|
|
||||||
// super.onMessageReceived(clientId, message)
|
|
||||||
// //toast("收到消息clientId=$clientId")
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// it.start()
|
|
||||||
// }
|
|
||||||
// } catch (e: Exception) {
|
|
||||||
// e.printStackTrace()
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * 接收服务端发送的消息
|
|
||||||
// *
|
|
||||||
// * @param json 人脸数据
|
|
||||||
// */
|
|
||||||
// private fun receiveMessage(json: JSONObject) {
|
|
||||||
// try {
|
|
||||||
// val faceId = json.getString("faceId");
|
|
||||||
// val faceFeature = json.getString("faceFeature");
|
|
||||||
// queryByUserName(faceId, { faceEntity ->
|
|
||||||
// if (faceEntity != null) {
|
|
||||||
// //已存在用户faceId的人脸数据
|
|
||||||
// return@queryByUserName
|
|
||||||
// }
|
|
||||||
// //不存在用户faceId,保存数据
|
|
||||||
// val faceEntity2 = FaceEntity(faceId, null, Base64.decode(faceFeature))
|
|
||||||
// //设置用户类型:1-内部员工、2-临时用户、3-普通会员、或者其它待定类型
|
|
||||||
// faceEntity2.setUserType("2")
|
|
||||||
// saveFaceData(faceEntity2)
|
|
||||||
// })
|
|
||||||
// } catch (e: Exception) {
|
|
||||||
// e.printStackTrace()
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// private fun saveFaceData(faceEntity: FaceEntity) {
|
|
||||||
// Thread {
|
|
||||||
// FaceDatabase.getInstance(this).faceDao().insert(faceEntity)
|
|
||||||
// }.start()
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private fun queryByUserName(userName: String, block: (FaceEntity) -> Unit) {
|
|
||||||
// Thread {
|
|
||||||
// val faceEntity = FaceDatabase.getInstance(this).faceDao().queryByUserName(userName)
|
|
||||||
// runOnUiThread {
|
|
||||||
// block(faceEntity)
|
|
||||||
// }
|
|
||||||
// }.start()
|
|
||||||
// }
|
|
||||||
|
|
||||||
private fun onTakePhotoSuccess(photoUri: Uri) {
|
private fun onTakePhotoSuccess(photoUri: Uri) {
|
||||||
lastPhotoUri = photoUri
|
lastPhotoUri = photoUri
|
||||||
Timber.tag(TAG).d("main,takePhoto耗时:${System.currentTimeMillis() - startTime}")
|
Timber.tag(TAG).d("main,takePhoto耗时:${System.currentTimeMillis() - startTime}")
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user