Browse Source

fix crash

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

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

@ -791,6 +791,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
gateABController = GateABController.getInstance();
gateABController.initialize(this);
// 初始化门禁不可用弹窗
gateUnavailableDialog = new GateUnavailableDialog(this);
// 检查是否开启AB门检测
checkGateCheckEnabled();
@ -807,6 +810,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
public void onGateUnavailable(String reason) {
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机1): " + reason);
// 检查门禁不可用弹窗是否已初始化
if (gateUnavailableDialog == null) {
LogManager.logError(TAG, "门禁不可用弹窗未初始化,无法显示");
return;
}
// 检查是否应该显示弹窗
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable());
if (shouldShow) {
@ -829,6 +838,14 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
public void onGateAvailable() {
LogManager.logInfo(TAG, "门禁恢复可用,隐藏弹窗并恢复摄像头预览");
// 检查门禁不可用弹窗是否已初始化
if (gateUnavailableDialog == null) {
LogManager.logWarning(TAG, "门禁不可用弹窗未初始化,无法隐藏");
// 直接恢复摄像头预览
resumeCamera();
return;
}
// 隐藏门禁不可用弹窗
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) {
gateUnavailableDialog.hide();
@ -840,6 +857,11 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
@Override
public void onGateStatusUpdate(boolean gateAOpen, boolean gateBOpen, boolean udpConnected) {
// 检查门禁不可用弹窗是否已初始化
if (gateUnavailableDialog == null) {
return;
}
// 实时更新弹窗中的门状态显示
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) {
LogManager.logInfo(TAG, "更新弹窗中的门状态显示: A门-" +
@ -865,9 +887,6 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
LogManager.logInfo(TAG, "AB门检测已关闭,跳过设置门状态监听器(触发时机1)");
}
// 初始化门禁不可用弹窗
gateUnavailableDialog = new GateUnavailableDialog(this);
// 设置弹窗操作监听器
gateUnavailableDialog.setDialogListener(new GateUnavailableDialog.GateUnavailableDialogListener() {
@Override
@ -956,6 +975,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
*/
private void showNewGateUnavailableDialog(String reason) {
try {
// 检查门禁不可用弹窗是否已初始化
if (gateUnavailableDialog == null) {
LogManager.logError(TAG, "门禁不可用弹窗未初始化,无法显示: " + reason);
return;
}
// 执行checkShow()判断是否显示弹窗
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable());
if (shouldShow) {
@ -989,6 +1014,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
*/
private void showNewPeopleCountDialog(boolean isLeaveScene, int peopleNum) {
try {
// 检查门禁不可用弹窗是否已初始化
if (gateUnavailableDialog == null) {
LogManager.logError(TAG, "门禁不可用弹窗未初始化,无法显示人数异常弹窗");
return;
}
// 执行checkShow()判断是否显示弹窗
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable());
if (shouldShow) {

Loading…
Cancel
Save