Browse Source

remove num check to test

devab
MTing 4 weeks ago
parent
commit
a9053a8e83
  1. 92
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java

92
app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java

@ -354,9 +354,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
// 设置结果状态
if (isSuccess) {
intent.putExtra("status", "离场成功");
// 使用接口返回的完整消息而不是默认的"离场成功"
String fullMessage = errorMessage != null ? errorMessage : "离场成功";
intent.putExtra("message", fullMessage);
intent.putExtra("message", errorMessage != null ? errorMessage : "离场成功");
} else {
intent.putExtra("status", "离场失败");
intent.putExtra("message", errorMessage != null ? errorMessage : "离场失败");
@ -1458,10 +1456,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
LogManager.logInfo(TAG, "门禁不可用弹窗资源已释放");
}
// 注意GateABController是全局单例不应该在这里释放
// 只需要将引用置为null避免内存泄漏
if (gateABController != null) {
gateABController.release();
// gateABController.release(); // 不再释放全局单例
gateABController = null;
LogManager.logInfo(TAG, "AB门控制器资源已释放");
LogManager.logInfo(TAG, "AB门控制器引用已置空");
}
if (abGateManager != null) {
@ -1731,7 +1731,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
LogManager.logInfo(TAG, "准备调用ABPeopleCheck方法");
boolean peopleCheckPassed = abGateManager.ABPeopleCheck();
LogManager.logInfo(TAG, "ABPeopleCheck方法返回结果: " + peopleCheckPassed);
peopleCheckPassed = true; //TODO test
if (!peopleCheckPassed) {
LogManager.logWarning(TAG, "人数检测未通过,准备显示弹窗");
// 人数检测未通过显示弹窗
@ -1842,7 +1842,18 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
// 直接开启B门防止用户卡在场内
if (gateABController != null) {
LogManager.logInfo(TAG, "离场场景网络不可用,直接开启B门");
// 检查GateABController是否已经被释放
try {
gateABController.handleFaceRecognitionSuccess(false); // 开启B门
} catch (Exception e) {
LogManager.logError(TAG, "调用GateABController.handleFaceRecognitionSuccess失败", e);
// 如果调用失败可能是因为控制器已被释放重新初始化
if (gateABController == null) {
gateABController = GateABController.getInstance();
gateABController.initialize(OXFaceOnlineActivity.this);
gateABController.handleFaceRecognitionSuccess(false);
}
}
}
// 3秒后隐藏提示
@ -2592,6 +2603,57 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
}
// 执行AB门开门操作
// 检查GateABController是否已经被释放
try {
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);
}
});
}
});
} catch (Exception e) {
LogManager.logError(TAG, "调用GateABController.openGateAB失败", e);
// 如果调用失败可能是因为控制器已被释放重新初始化
try {
if (gateABController == null) {
gateABController = GateABController.getInstance();
gateABController.initialize(OXFaceOnlineActivity.this);
}
gateABController.openGateAB(new GateABController.GateControlCallback() {
@Override
public void onSuccess(String message) {
@ -2633,6 +2695,24 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
});
}
});
} catch (Exception reInitException) {
LogManager.logError(TAG, "重新初始化GateABController并调用openGateAB失败", reInitException);
runOnUiThread(() -> {
Toast.makeText(OXFaceOnlineActivity.this, "开门失败: 控制器初始化失败", Toast.LENGTH_SHORT).show();
// 更新UI状态
if (layoutCompareStatus != null) {
textCompareStatus.setText("开门失败: 控制器初始化失败");
textCompareStatus.setTextColor(Color.RED);
// 3秒后隐藏状态提示
new Handler().postDelayed(() -> {
layoutCompareStatus.setVisibility(View.GONE);
}, 3000);
}
});
}
}
}
/**

Loading…
Cancel
Save