赵明涛 2 hours ago
parent
commit
5d99fa4344
  1. 6
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  2. 18
      app/src/main/java/com/ouxuan/oxface/device/GateABController.java

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

@ -711,11 +711,15 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
@Override
public void onGateAvailable() {
LogManager.logInfo(TAG, "门禁恢复可用,隐藏弹窗");
LogManager.logInfo(TAG, "门禁恢复可用,隐藏弹窗并恢复摄像头预览");
// 隐藏门禁不可用弹窗
if (gateUnavailableDialog != null && gateUnavailableDialog.isShowing()) {
gateUnavailableDialog.hide();
}
// 恢复摄像头预览与弹窗的onDialogHide回调保持一致
resumeCamera();
}
});

18
app/src/main/java/com/ouxuan/oxface/device/GateABController.java

@ -997,11 +997,23 @@ public class GateABController {
// 如果状态发生变化且有监听器通知监听器
if (stateChanged && gateStateListener != null) {
final boolean finalShouldShowDialog = shouldShowDialog;
final boolean shouldHideDialog = oldShouldShow && !newShouldShow;
syncHandler.post(() -> {
gateStateListener.onGateStateChanged(currentGateState);
// 如果需要显示弹窗额外通知
if (finalShouldShowDialog && gateStateListener instanceof GateUnavailableListener) {
((GateUnavailableListener) gateStateListener).onGateUnavailable(currentGateState.getUnavailableReason());
if (gateStateListener instanceof GateUnavailableListener) {
GateUnavailableListener unavailableListener = (GateUnavailableListener) gateStateListener;
// 如果需要显示弹窗触发不可用回调
if (finalShouldShowDialog) {
unavailableListener.onGateUnavailable(currentGateState.getUnavailableReason());
}
// 如果需要隐藏弹窗门状态恢复正常触发可用回调
else if (shouldHideDialog) {
LogManager.logInfo(TAG, "触发门禁恢复可用回调,隐藏弹窗并恢复摄像头");
unavailableListener.onGateAvailable();
}
}
});
}

Loading…
Cancel
Save