From 1aacbd6a31008f52c0c220bd2193e33385a10f01 Mon Sep 17 00:00:00 2001 From: MTing Date: Tue, 16 Sep 2025 14:21:27 +0800 Subject: [PATCH] add opendoor --- .../com/ouxuan/oxface/OXFaceOnlineActivity.java | 103 ++++++++++++++------- 1 file changed, 69 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index 2e01405..e6792db 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -1209,35 +1209,6 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi } /** - * 处理开门按钮点击事件 - */ - private void handleOpenDoorClick() { - LogManager.logInfo(TAG, "用户点击开门按钮"); - Toast.makeText(this, "开门功能已触发", Toast.LENGTH_SHORT).show(); - - // 这里可以添加实际的开门逻辑 - // 例如:发送网络请求到服务器执行开门操作 - // 或者通过蓝牙/WiFi连接门锁设备 - - // 显示开门状态 - if (layoutCompareStatus != null) { - layoutCompareStatus.setVisibility(View.VISIBLE); - textCompareStatus.setTextColor(Color.parseColor("#009874")); - textCompareStatus.setText("正在开门..."); - - // 3秒后隐藏状态提示 - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - if (layoutCompareStatus != null) { - layoutCompareStatus.setVisibility(View.GONE); - } - } - }, 3000); - } - } - - /** * 处理扫码按钮点击事件 */ // private void handleScanQRClick() { @@ -1297,8 +1268,8 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi * 处理新用户扫码上传人脸点击事件 */ private void handleMiniProgramCodeClick() { - LogManager.logInfo(TAG, "用户点击新用户扫码上传人脸"); - Toast.makeText(this, "新用户扫码上传人脸功能已触发", Toast.LENGTH_SHORT).show(); + LogManager.logInfo(TAG, "请扫码上传人脸"); + Toast.makeText(this, "请用微信扫码上传人脸", Toast.LENGTH_SHORT).show(); // 这里可以添加实际的扫码逻辑 // 例如:启动扫码Activity或显示扫码界面 @@ -1307,7 +1278,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi if (layoutCompareStatus != null) { layoutCompareStatus.setVisibility(View.VISIBLE); textCompareStatus.setTextColor(Color.parseColor("#009874")); - textCompareStatus.setText("请使用小程序扫码上传人脸"); + textCompareStatus.setText("请使用微信扫码上传人脸"); // 3秒后隐藏状态提示 new Handler().postDelayed(new Runnable() { @@ -1326,7 +1297,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi */ private void handleScanDoorQRCodeClick() { LogManager.logInfo(TAG, "用户点击扫码开门"); - Toast.makeText(this, "扫码开门功能已触发", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "扫码开门功能已触发", Toast.LENGTH_SHORT).show(); // 这里可以添加实际的扫码开门逻辑 // 例如:启动扫码Activity或显示扫码界面 @@ -2409,7 +2380,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 使用新的网络请求管理器执行验证 orderVerificationManager.performVerification(modeType, verifyCode, null); } - + /** * 处理扫码按钮点击事件 */ @@ -2525,6 +2496,70 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi } /** + * 处理开门按钮点击事件 + */ + private void handleOpenDoorClick() { + LogManager.logInfo(TAG, "用户点击开门按钮"); + + // 检查GateABController是否已初始化 + if (gateABController == null) { + LogManager.logError(TAG, "GateABController未初始化,无法执行开门操作"); + Toast.makeText(this, "门禁控制器未初始化", Toast.LENGTH_SHORT).show(); + return; + } + + // 显示开门状态 + if (layoutCompareStatus != null) { + layoutCompareStatus.setVisibility(View.VISIBLE); + textCompareStatus.setTextColor(Color.parseColor("#009874")); + textCompareStatus.setText("正在开门..."); + } + + // 执行AB门开门操作 + gateABController.openGateAB(new GateABController.GateControlCallback() { + @Override + public void onSuccess(String message) { + LogManager.logInfo(TAG, "开门成功: " + message); + + runOnUiThread(() -> { + Toast.makeText(OXFaceOnlineActivity.this, "开门成功: " + message, Toast.LENGTH_SHORT).show(); + + // 更新UI状态 + if (layoutCompareStatus != null) { + textCompareStatus.setText("开门成功"); + textCompareStatus.setTextColor(Color.parseColor("#009874")); + + // 3秒后隐藏状态提示 + new Handler().postDelayed(() -> { + layoutCompareStatus.setVisibility(View.GONE); + }, 3000); + } + }); + } + + @Override + public void onError(String errorMessage) { + LogManager.logError(TAG, "开门失败: " + errorMessage); + + runOnUiThread(() -> { + Toast.makeText(OXFaceOnlineActivity.this, "开门失败: " + errorMessage, Toast.LENGTH_SHORT).show(); + + // 更新UI状态 + if (layoutCompareStatus != null) { + textCompareStatus.setText("开门失败: " + errorMessage); + textCompareStatus.setTextColor(Color.RED); + + // 3秒后隐藏状态提示 + new Handler().postDelayed(() -> { + layoutCompareStatus.setVisibility(View.GONE); + }, 3000); + } + }); + } + }); + } + + /** * 执行扫码核销 */ private void performScanVerification() {