|
@ -699,13 +699,20 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
public void onGateUnavailable(String reason) { |
|
|
public void onGateUnavailable(String reason) { |
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机1): " + reason); |
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机1): " + reason); |
|
|
|
|
|
|
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
|
|
if (shouldShow) { |
|
|
|
|
|
// 显示门状态异常弹窗 |
|
|
|
|
|
gateUnavailableDialog.showGateStateError(reason); |
|
|
|
|
|
|
|
|
// 先检查并取消已存在的弹窗,避免重复弹窗 |
|
|
|
|
|
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) { |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到已有门禁不可用弹窗,先取消后显示新弹窗"); |
|
|
|
|
|
gateUnavailableDialog.hide(); |
|
|
|
|
|
// 等待一小段时间,确保旧弹窗完全关闭 |
|
|
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
showNewGateUnavailableDialog(reason); |
|
|
|
|
|
} |
|
|
|
|
|
}, 100); |
|
|
} else { |
|
|
} else { |
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
|
|
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
|
|
showNewGateUnavailableDialog(reason); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -754,6 +761,47 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* 显示新的门禁不可用弹窗 |
|
|
|
|
|
* @param reason 不可用原因 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void showNewGateUnavailableDialog(String reason) { |
|
|
|
|
|
try { |
|
|
|
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
|
|
if (shouldShow) { |
|
|
|
|
|
// 显示门状态异常弹窗 |
|
|
|
|
|
gateUnavailableDialog.showGateStateError(reason); |
|
|
|
|
|
LogManager.logInfo(TAG, "已显示门禁不可用弹窗: " + reason); |
|
|
|
|
|
} else { |
|
|
|
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "显示门禁不可用弹窗失败", e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 显示新的人数异常弹窗 |
|
|
|
|
|
* @param isLeaveScene 是否为离场场景 |
|
|
|
|
|
* @param peopleNum 门内人数 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void showNewPeopleCountDialog(boolean isLeaveScene, int peopleNum) { |
|
|
|
|
|
try { |
|
|
|
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
|
|
if (shouldShow) { |
|
|
|
|
|
// 显示人数异常弹窗 |
|
|
|
|
|
gateUnavailableDialog.showPeopleCountError(isLeaveScene, peopleNum); |
|
|
|
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机2): 人数异常, 场景=" + (isLeaveScene ? "离场" : "进场") + ", 人数=" + peopleNum); |
|
|
|
|
|
} else { |
|
|
|
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
LogManager.logError(TAG, "显示人数异常弹窗失败", e); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
* 检查是否开启AB门检测 |
|
|
* 检查是否开启AB门检测 |
|
|
*/ |
|
|
*/ |
|
|
private void checkGateCheckEnabled() { |
|
|
private void checkGateCheckEnabled() { |
|
@ -1527,14 +1575,20 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
gateABController.get485PeopleNum(new GateABController.PeopleNumCallback() { |
|
|
gateABController.get485PeopleNum(new GateABController.PeopleNumCallback() { |
|
|
@Override |
|
|
@Override |
|
|
public void onSuccess(int peopleNum) { |
|
|
public void onSuccess(int peopleNum) { |
|
|
// 执行checkShow()判断是否显示弹窗 |
|
|
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
|
|
if (shouldShow) { |
|
|
|
|
|
// 显示人数异常弹窗 |
|
|
|
|
|
gateUnavailableDialog.showPeopleCountError(isLeaveScene, peopleNum); |
|
|
|
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机2): 人数异常, 场景=" + (isLeaveScene ? "离场" : "进场") + ", 人数=" + 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 { |
|
|
} else { |
|
|
LogManager.logInfo(TAG, "根据业务规则,不显示门禁不可用弹窗"); |
|
|
|
|
|
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
|
|
showNewPeopleCountDialog(isLeaveScene, peopleNum); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1542,12 +1596,20 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi |
|
|
public void onError(String errorMessage) { |
|
|
public void onError(String errorMessage) { |
|
|
LogManager.logError(TAG, "获取人数失败,无法显示具体人数: " + errorMessage); |
|
|
LogManager.logError(TAG, "获取人数失败,无法显示具体人数: " + errorMessage); |
|
|
|
|
|
|
|
|
// 即使获取人数失败,也可以显示一个通用的人数异常弹窗 |
|
|
|
|
|
boolean shouldShow = gateUnavailableDialog.checkShow(OXFaceOnlineActivity.this, isNetworkAvailable()); |
|
|
|
|
|
if (shouldShow) { |
|
|
|
|
|
String reason = "门禁内人数不符合要求,请等待"; |
|
|
|
|
|
gateUnavailableDialog.showGateStateError(reason); |
|
|
|
|
|
LogManager.logWarning(TAG, "触发门禁不可用弹窗(触发时机2): " + reason); |
|
|
|
|
|
|
|
|
// 先检查并取消已存在的弹窗,避免重复弹窗 |
|
|
|
|
|
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) { |
|
|
|
|
|
LogManager.logInfo(TAG, "检测到已有门禁不可用弹窗,先取消后显示通用人数异常弹窗"); |
|
|
|
|
|
gateUnavailableDialog.hide(); |
|
|
|
|
|
// 等待一小段时间,确保旧弹窗完全关闭 |
|
|
|
|
|
new Handler().postDelayed(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
showNewGateUnavailableDialog("门禁内人数不符合要求,请等待"); |
|
|
|
|
|
} |
|
|
|
|
|
}, 100); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 没有已存在的弹窗,直接显示新弹窗 |
|
|
|
|
|
showNewGateUnavailableDialog("门禁内人数不符合要求,请等待"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|