优化
This commit is contained in:
Generated
+2
-2
@@ -4,10 +4,10 @@
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2026-01-22T07:28:00.026342Z">
|
||||
<DropdownSelection timestamp="2026-02-05T08:42:12.462597100Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="Default" identifier="serial=192.168.1.128:5555;connection=c168ec92" />
|
||||
<DeviceId pluginId="Default" identifier="serial=192.168.3.114:5555;connection=a41f05a9" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
android:name=".activity.MainActivity"
|
||||
android:exported="false">
|
||||
</activity>
|
||||
<activity android:name="com.sw.platecabinet.activity.FunActivity" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.sw.platecabinet.activity
|
||||
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.sw.plate.utils.ToastUtils
|
||||
import com.sw.platecabinet.MyApp
|
||||
import com.sw.platecabinet.databinding.ActivityFunBinding
|
||||
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
|
||||
import com.sw.platecabinet.dialog.CustomDialog
|
||||
import com.sw.platecabinet.ext.clickWithDebounce
|
||||
import com.sw.platecabinet.utils.PlateUtils
|
||||
import com.sw.platecabinet.utils.SpTool
|
||||
import kotlinx.coroutines.CoroutineDispatcher
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
class FunActivity : BaseActivity<ActivityFunBinding>() {
|
||||
|
||||
override fun inflateTitleBinding(): ItemTitleTimeBinding? {
|
||||
return binding.includeHeader
|
||||
}
|
||||
|
||||
override fun inflateViewBinding() = ActivityFunBinding.inflate(layoutInflater)
|
||||
|
||||
override fun initialize() {
|
||||
binding.btnClearFace.clickWithDebounce { clearFace() }
|
||||
binding.btnClearAndGetAll.clickWithDebounce { clearFaceAndGetAll() }
|
||||
binding.btnOpenAllPlate.clickWithDebounce {
|
||||
lifecycleScope.launch {
|
||||
openAllPlate()
|
||||
}
|
||||
}
|
||||
binding.btnPutPlate.clickWithDebounce { putPlate() }
|
||||
}
|
||||
|
||||
private fun clearFace() {
|
||||
loadClearDialog("请确认是否清除本地所有数据?") {
|
||||
showWaitingDialog("加载中……")
|
||||
clearAllFace {
|
||||
binding.root.postDelayed(
|
||||
{
|
||||
hideWaitingDialog()
|
||||
ToastUtils.showToast("已清除")
|
||||
}, 500
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun clearFaceAndGetAll() {
|
||||
loadClearDialog("请确认是否清除本地所有数据,并重新拉取全量人脸数据?") {
|
||||
showWaitingDialog("加载中……")
|
||||
clearAllFace {
|
||||
userViewModel.getUserFaceCache { status, msg ->
|
||||
hideWaitingDialog()
|
||||
ToastUtils.showToast(
|
||||
if (status) "请求成功,$msg" else "请求失败,$msg"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun openAllPlate() {
|
||||
MyApp.plateList?.let { plateList ->
|
||||
val boxCodeList = plateList.filter { it.equipmentBoxCode.isNullOrBlank().not() }
|
||||
.map { it.equipmentBoxCode }
|
||||
boxCodeList.forEach { boxCode ->
|
||||
withContext(Dispatchers.Default) {
|
||||
PlateUtils.openDirect(boxCode)
|
||||
delay(500)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun putPlate() {
|
||||
showWaitingDialog("加载中……")
|
||||
MyApp.plateList?.forEachIndexed { index, item ->
|
||||
val num = index + 1
|
||||
val realNum = if (num < 10) "0${num}" else "${num}"
|
||||
item.plateNumber = realNum + realNum + realNum
|
||||
item.faceId = null
|
||||
item.updateTime = null
|
||||
}
|
||||
SpTool.savePlateData(MyApp.plateList!!)
|
||||
binding.root.postDelayed({
|
||||
hideWaitingDialog()
|
||||
ToastUtils.showToast("已完成")
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载清除数据弹窗
|
||||
*/
|
||||
private fun loadClearDialog(msg: String, callback: () -> Unit) {
|
||||
CustomDialog(
|
||||
activity = this,
|
||||
content = msg,
|
||||
onConfirm = {
|
||||
callback()
|
||||
}).show()
|
||||
}
|
||||
|
||||
override fun onLeftDoubleClick() {
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun onRightDoubleClick() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -521,10 +521,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
plateEnable = false
|
||||
Debouncer(5000).debounce {
|
||||
//打开柜子
|
||||
PlateUtils.open(this, item.equipmentBoxCode, false)
|
||||
|
||||
PlateUtils.open(this, item.equipmentBoxCode, false) {
|
||||
goInitActivity()
|
||||
}
|
||||
countDownTimer?.cancel()
|
||||
goInitActivity()
|
||||
}
|
||||
currentPlateInfo = item
|
||||
MyApp.plateList = items
|
||||
|
||||
@@ -86,7 +86,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
|
||||
override fun onRightDoubleClick() {
|
||||
if (pageType == PageType.SETTING_LIST) {
|
||||
loadClearDialog()
|
||||
startActivity(Intent(this, FunActivity::class.java))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,25 +104,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
super.registerDataChange()
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载清除数据弹窗
|
||||
*/
|
||||
private fun loadClearDialog() {
|
||||
CustomDialog(
|
||||
activity = this,
|
||||
content = "请确认是否清除本地所有数据,并重新拉取全量人脸数据?",
|
||||
onConfirm = {
|
||||
showWaitingDialog("加载中……")
|
||||
clearAllFace {
|
||||
userViewModel.getUserFaceCache { status, msg ->
|
||||
hideWaitingDialog()
|
||||
ToastUtils.showToast(
|
||||
if (status) "请求成功,$msg" else "请求失败,$msg"
|
||||
)
|
||||
}
|
||||
}
|
||||
}).show()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,7 +15,8 @@ object PlateUtils {
|
||||
fragmentActivity: FragmentActivity,
|
||||
code: String?,
|
||||
isScanCode: Boolean,
|
||||
isSetting: Boolean = false
|
||||
isSetting: Boolean = false,
|
||||
callback: () -> Unit = {}
|
||||
) {
|
||||
val activity = fragmentActivity as BaseActivity<*>
|
||||
Timber.d("itemClick llOpen equipmentBoxCode = ${code}")
|
||||
@@ -36,15 +37,30 @@ object PlateUtils {
|
||||
)
|
||||
} else {
|
||||
ToastUtils.showToast("柜门打开成功")
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(e: Exception?) {
|
||||
activity.hideWaitingDialog()
|
||||
ToastUtils.showToast("柜门打开失败")
|
||||
callback()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun openDirect(boxCode: String?) {
|
||||
val boxNumber = boxCode?.toIntOrNull() ?: -1
|
||||
if (boxNumber < 0) return
|
||||
SerialApi.openPlate(boxNumber, object : SerialPortManager.SendCallback {
|
||||
override fun onSuccess() {
|
||||
|
||||
}
|
||||
|
||||
override fun onFail(e: Exception?) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/includeHeader"
|
||||
layout="@layout/item_title_time" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnClearFace"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textSize="24sp"
|
||||
android:gravity="center"
|
||||
android:layout_marginHorizontal="50dp"
|
||||
android:paddingHorizontal="30dp"
|
||||
android:background="@drawable/btn_outline"
|
||||
android:text="清除人脸数据"
|
||||
android:textColor="#FFCC99" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnClearAndGetAll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textSize="24sp"
|
||||
android:gravity="center"
|
||||
android:layout_marginHorizontal="50dp"
|
||||
android:paddingHorizontal="30dp"
|
||||
android:background="@drawable/btn_outline"
|
||||
android:text="清除并重新拉取数据"
|
||||
android:textColor="#FFCC99" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnOpenAllPlate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textSize="24sp"
|
||||
android:gravity="center"
|
||||
android:layout_marginHorizontal="50dp"
|
||||
android:paddingHorizontal="30dp"
|
||||
android:background="@drawable/btn_outline"
|
||||
android:text="打开全部柜子"
|
||||
android:textColor="#FFCC99" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnPutPlate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textSize="24sp"
|
||||
android:gravity="center"
|
||||
android:layout_marginHorizontal="50dp"
|
||||
android:paddingHorizontal="30dp"
|
||||
android:background="@drawable/btn_outline"
|
||||
android:text="模拟放置餐盘"
|
||||
android:textColor="#FFCC99" />
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user