|
|
@ -699,20 +699,14 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
public void onGateUnavailable(String reason) { |
|
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机1): " + reason); |
|
|
|
|
|
|
|
// 先检查并取消已存在的弹窗,避免重复弹窗 |
|
|
|
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) { |
|
|
|
LogManager.logInfo(TAG, "检测到已有门禁不可用弹窗,先取消后显示新弹窗"); |
|
|
|
gateUnavailableDialog.hide(); |
|
|
|
// 等待一小段时间,确保旧弹窗完全关闭 |
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
showNewGateUnavailableDialog(reason); |
|
|
|
} |
|
|
|
}, 100); |
|
|
|
// 检查是否应该显示弹窗 |
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
if (shouldShow) { |
|
|
|
// 如果已有弹窗存在,更新内容;如果没有,显示新弹窗 |
|
|
|
gateUnavailableDialog.updateGateStateError(reason); |
|
|
|
LogManager.logInfo(TAG, "已更新门禁不可用弹窗内容: " + reason); |
|
|
|
} else { |
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
showNewGateUnavailableDialog(reason); |
|
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -769,9 +763,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
if (shouldShow) { |
|
|
|
// 显示门状态异常弹窗 |
|
|
|
gateUnavailableDialog.showGateStateError(reason); |
|
|
|
LogManager.logInfo(TAG, "已显示门禁不可用弹窗: " + reason); |
|
|
|
// 如果已有弹窗存在,更新内容;如果没有,显示新弹窗 |
|
|
|
gateUnavailableDialog.updateGateStateError(reason); |
|
|
|
LogManager.logInfo(TAG, "已更新门禁不可用弹窗内容: " + reason); |
|
|
|
} else { |
|
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
} |
|
|
@ -790,8 +784,8 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
if (shouldShow) { |
|
|
|
// 显示人数异常弹窗 |
|
|
|
gateUnavailableDialog.showPeopleCountError(isLeaveScene, peopleNum); |
|
|
|
// 如果已有弹窗存在,更新内容;如果没有,显示新弹窗 |
|
|
|
gateUnavailableDialog.updatePeopleCountError(isLeaveScene, peopleNum); |
|
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机2): 人数异常, 场景=" + (isLeaveScene ? "离场" : "进场") + ", 人数=" + peopleNum); |
|
|
|
} else { |
|
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
@ -1575,42 +1569,16 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
|
gateABController.get485PeopleNum(new GateABController.PeopleNumCallback() { |
|
|
|
@Override |
|
|
|
public void onSuccess(int peopleNum) { |
|
|
|
// 先检查并取消已存在的弹窗,避免重复弹窗 |
|
|
|
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) { |
|
|
|
LogManager.logInfo(TAG, "检测到已有门禁不可用弹窗,先取消后显示人数弹窗"); |
|
|
|
gateUnavailableDialog.hide(); |
|
|
|
// 等待一小段时间,确保旧弹窗完全关闭 |
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
showNewPeopleCountDialog(isLeaveScene, peopleNum); |
|
|
|
} |
|
|
|
}, 100); |
|
|
|
} else { |
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
showNewPeopleCountDialog(isLeaveScene, peopleNum); |
|
|
|
} |
|
|
|
// 直接更新弹窗内容,不需要检查重复弹窗 |
|
|
|
showNewPeopleCountDialog(isLeaveScene, peopleNum); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onError(String errorMessage) { |
|
|
|
LogManager.logError(TAG, "获取人数失败,无法显示具体人数: " + errorMessage); |
|
|
|
|
|
|
|
// 先检查并取消已存在的弹窗,避免重复弹窗 |
|
|
|
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) { |
|
|
|
LogManager.logInfo(TAG, "检测到已有门禁不可用弹窗,先取消后显示通用人数异常弹窗"); |
|
|
|
gateUnavailableDialog.hide(); |
|
|
|
// 等待一小段时间,确保旧弹窗完全关闭 |
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
showNewGateUnavailableDialog("门禁内人数不符合要求,请等待"); |
|
|
|
} |
|
|
|
}, 100); |
|
|
|
} else { |
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
showNewGateUnavailableDialog("门禁内人数不符合要求,请等待"); |
|
|
|
} |
|
|
|
// 直接更新弹窗内容,不需要检查重复弹窗 |
|
|
|
showNewGateUnavailableDialog("门禁内人数不符合要求,请等待"); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|