|
@ -101,9 +101,18 @@ public class GateUnavailableDialog { |
|
|
tvMessage.setGravity(Gravity.CENTER); |
|
|
tvMessage.setGravity(Gravity.CENTER); |
|
|
tvMessage.setLineSpacing(5, 1.2f); |
|
|
tvMessage.setLineSpacing(5, 1.2f); |
|
|
|
|
|
|
|
|
|
|
|
// 门状态显示 |
|
|
|
|
|
tvGateStatus = new TextView(context); |
|
|
|
|
|
tvGateStatus.setTextSize(14); |
|
|
|
|
|
tvGateStatus.setTextColor(Color.parseColor("#666666")); |
|
|
|
|
|
tvGateStatus.setGravity(Gravity.CENTER); |
|
|
|
|
|
tvGateStatus.setPadding(0, 10, 0, 0); |
|
|
|
|
|
tvGateStatus.setText("门状态:A门-未知, B门-未知"); // 默认状态 |
|
|
|
|
|
|
|
|
// 添加视图到容器 |
|
|
// 添加视图到容器 |
|
|
contentLayout.addView(tvTitle); |
|
|
contentLayout.addView(tvTitle); |
|
|
contentLayout.addView(tvMessage); |
|
|
contentLayout.addView(tvMessage); |
|
|
|
|
|
contentLayout.addView(tvGateStatus); // 添加门状态显示 |
|
|
|
|
|
|
|
|
// 设置内容布局参数 |
|
|
// 设置内容布局参数 |
|
|
LinearLayout.LayoutParams contentParams = new LinearLayout.LayoutParams( |
|
|
LinearLayout.LayoutParams contentParams = new LinearLayout.LayoutParams( |
|
@ -137,8 +146,51 @@ public class GateUnavailableDialog { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 更新弹窗内容 |
|
|
|
|
|
* 如果弹窗正在显示,直接更新内容;如果没有显示,则显示弹窗 |
|
|
|
|
|
|
|
|
* 更新门状态显示 |
|
|
|
|
|
* @param gateAOpen A门是否开启 |
|
|
|
|
|
* @param gateBOpen B门是否开启 |
|
|
|
|
|
* @param udpConnected UDP连接状态 |
|
|
|
|
|
*/ |
|
|
|
|
|
private void updateGateStatusDisplay(boolean gateAOpen, boolean gateBOpen, boolean udpConnected) { |
|
|
|
|
|
String gateAStatus = gateAOpen ? "开启" : "关闭"; |
|
|
|
|
|
String gateBStatus = gateBOpen ? "开启" : "关闭"; |
|
|
|
|
|
String udpStatus = udpConnected ? "正常" : "异常"; |
|
|
|
|
|
|
|
|
|
|
|
String statusText = "门状态:A门-" + gateAStatus + ", B门-" + gateBStatus + " | UDP-" + udpStatus; |
|
|
|
|
|
tvGateStatus.setText(statusText); |
|
|
|
|
|
|
|
|
|
|
|
LogManager.logInfo(TAG, "更新门状态显示: " + statusText); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 更新门状态异常弹窗内容(带门状态信息) |
|
|
|
|
|
* @param reason 新的不可用原因 |
|
|
|
|
|
* @param gateAOpen A门是否开启 |
|
|
|
|
|
* @param gateBOpen B门是否开启 |
|
|
|
|
|
* @param udpConnected UDP连接状态 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void updateGateStateError(String reason, boolean gateAOpen, boolean gateBOpen, boolean udpConnected) { |
|
|
|
|
|
LogManager.logInfo(TAG, "更新门状态异常弹窗内容: " + reason + |
|
|
|
|
|
", A门: " + (gateAOpen ? "开启" : "关闭") + |
|
|
|
|
|
", B门: " + (gateBOpen ? "开启" : "关闭") + |
|
|
|
|
|
", UDP: " + (udpConnected ? "正常" : "异常")); |
|
|
|
|
|
|
|
|
|
|
|
tvTitle.setText("门禁不可用"); |
|
|
|
|
|
tvMessage.setText(reason); |
|
|
|
|
|
|
|
|
|
|
|
// 更新门状态显示 |
|
|
|
|
|
updateGateStatusDisplay(gateAOpen, gateBOpen, udpConnected); |
|
|
|
|
|
|
|
|
|
|
|
// 如果弹窗未显示,则显示弹窗 |
|
|
|
|
|
if (!isShowing) { |
|
|
|
|
|
show(); |
|
|
|
|
|
} else { |
|
|
|
|
|
LogManager.logInfo(TAG, "弹窗已显示,仅更新内容"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 更新门状态异常弹窗内容(简化版,不显示门状态) |
|
|
* @param reason 新的不可用原因 |
|
|
* @param reason 新的不可用原因 |
|
|
*/ |
|
|
*/ |
|
|
public void updateGateStateError(String reason) { |
|
|
public void updateGateStateError(String reason) { |
|
@ -147,6 +199,8 @@ public class GateUnavailableDialog { |
|
|
tvTitle.setText("门禁不可用"); |
|
|
tvTitle.setText("门禁不可用"); |
|
|
tvMessage.setText(reason); |
|
|
tvMessage.setText(reason); |
|
|
|
|
|
|
|
|
|
|
|
// 不更新门状态显示,保持之前的状态 |
|
|
|
|
|
|
|
|
// 如果弹窗未显示,则显示弹窗 |
|
|
// 如果弹窗未显示,则显示弹窗 |
|
|
if (!isShowing) { |
|
|
if (!isShowing) { |
|
|
show(); |
|
|
show(); |
|
@ -157,7 +211,6 @@ public class GateUnavailableDialog { |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 更新人数异常弹窗内容 |
|
|
* 更新人数异常弹窗内容 |
|
|
* 如果弹窗正在显示,直接更新内容;如果没有显示,则显示弹窗 |
|
|
|
|
|
* @param isLeaveScene 是否为离场场景 |
|
|
* @param isLeaveScene 是否为离场场景 |
|
|
* @param peopleCount 门内人数 |
|
|
* @param peopleCount 门内人数 |
|
|
*/ |
|
|
*/ |
|
@ -176,6 +229,8 @@ public class GateUnavailableDialog { |
|
|
tvTitle.setText("门禁不可用"); |
|
|
tvTitle.setText("门禁不可用"); |
|
|
tvMessage.setText(message); |
|
|
tvMessage.setText(message); |
|
|
|
|
|
|
|
|
|
|
|
// 不更新门状态显示,保持之前的状态 |
|
|
|
|
|
|
|
|
// 如果弹窗未显示,则显示弹窗 |
|
|
// 如果弹窗未显示,则显示弹窗 |
|
|
if (!isShowing) { |
|
|
if (!isShowing) { |
|
|
show(); |
|
|
show(); |
|
|