Browse Source

add control of api

devab
MTing 4 weeks ago
parent
commit
060afd4a39
  1. 67
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  2. 53
      app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java
  3. 1
      app/src/main/res/layout/activity_oxface_online.xml

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

@ -165,6 +165,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
// 新增的二维码区域控件
private ImageView imgMiniProgramCode;
private ImageView imgScanDoorQRCode;
private TextView tvScanDoorText; // 扫码开门文本
private Button btnVerificationCode;
private Button btnScannerDoor;
@ -546,9 +547,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
// 初始化二维码区域控件
imgMiniProgramCode = findViewById(R.id.img_mini_program_code);
imgScanDoorQRCode = findViewById(R.id.img_scan_door_qrcode);
tvScanDoorText = findViewById(R.id.tv_scan_door_text); // 初始化扫码开门文本
btnVerificationCode = findViewById(R.id.btn_verification_code);
btnScannerDoor = findViewById(R.id.btn_scanner_door);
// 添加调试日志检查控件是否正确初始化
android.util.Log.d(TAG, "imgMiniProgramCode初始化: " + (imgMiniProgramCode != null));
android.util.Log.d(TAG, "imgScanDoorQRCode初始化: " + (imgScanDoorQRCode != null));
@ -685,6 +686,66 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
}
/**
* 根据后台配置更新按钮显示/隐藏状态
*/
private void updateButtonVisibility() {
try {
// 使用VenueSceneUtils工具类获取按钮显示配置
com.ouxuan.oxface.utils.VenueSceneUtils.PadConfigButtonVisibility buttonVisibility =
com.ouxuan.oxface.utils.VenueSceneUtils.getPadConfigButtonVisibility(this);
// 控制开门按钮显示/隐藏
// data.pad_config.is_show_gate_btn == 1 显示开门按钮
if (btnOpenDoor != null) {
btnOpenDoor.setVisibility(buttonVisibility.isShowGateBtn ? View.VISIBLE : View.GONE);
LogManager.logInfo(TAG, "开门按钮显示状态更新: " + (buttonVisibility.isShowGateBtn ? "显示" : "隐藏"));
}
// 控制验证码开门按钮显示/隐藏
// data.pad_config.is_code_verify == 1 开启验证码验证
if (btnVerificationCode != null) {
btnVerificationCode.setVisibility(buttonVisibility.isCodeVerify ? View.VISIBLE : View.GONE);
LogManager.logInfo(TAG, "验证码开门按钮显示状态更新: " + (buttonVisibility.isCodeVerify ? "显示" : "隐藏"));
}
// 控制扫码器开门按钮显示/隐藏
// data.pad_config.is_scan_code_verify == 1 扫码器验证
if (btnScannerDoor != null) {
btnScannerDoor.setVisibility(buttonVisibility.isScanCodeVerify ? View.VISIBLE : View.GONE);
LogManager.logInfo(TAG, "扫码器开门按钮显示状态更新: " + (buttonVisibility.isScanCodeVerify ? "显示" : "隐藏"));
}
// 控制扫码开门按钮显示/隐藏
// data.pad_config.is_scan_verify == 1 扫码开门验证
if (imgScanDoorQRCode != null) {
imgScanDoorQRCode.setVisibility(buttonVisibility.isScanVerify ? View.VISIBLE : View.GONE);
LogManager.logInfo(TAG, "扫码开门按钮显示状态更新: " + (buttonVisibility.isScanVerify ? "显示" : "隐藏"));
}
// 控制扫码开门文本显示/隐藏与扫码开门按钮一致
if (tvScanDoorText != null) {
tvScanDoorText.setVisibility(buttonVisibility.isScanVerify ? View.VISIBLE : View.GONE);
LogManager.logInfo(TAG, "扫码开门文本显示状态更新: " + (buttonVisibility.isScanVerify ? "显示" : "隐藏"));
}
// 新用户扫码上传人脸按钮始终显示
if (imgMiniProgramCode != null) {
imgMiniProgramCode.setVisibility(View.VISIBLE);
LogManager.logInfo(TAG, "新用户扫码上传人脸按钮始终显示");
}
} catch (Exception e) {
LogManager.logError(TAG, "更新按钮显示状态时发生异常", e);
// 异常情况下显示所有按钮和文本
if (btnOpenDoor != null) btnOpenDoor.setVisibility(View.VISIBLE);
if (btnVerificationCode != null) btnVerificationCode.setVisibility(View.VISIBLE);
if (btnScannerDoor != null) btnScannerDoor.setVisibility(View.VISIBLE);
if (imgScanDoorQRCode != null) imgScanDoorQRCode.setVisibility(View.VISIBLE);
if (tvScanDoorText != null) tvScanDoorText.setVisibility(View.VISIBLE);
if (imgMiniProgramCode != null) imgMiniProgramCode.setVisibility(View.VISIBLE);
}
}
/**
* 初始化网络状态指示器
*/
private void initNetworkStatusIndicator() {
@ -993,6 +1054,10 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
}else{
LogManager.logInfo(TAG, "OXFaceOnlineActivity onResume has not CAMERA permission");
}
// 根据后台配置更新按钮显示状态
updateButtonVisibility();
LogManager.logInfo(TAG, "OXFaceOnlineActivity onResume");
}

53
app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java

@ -83,6 +83,39 @@ public class VenueSceneUtils {
}
/**
* 获取PadConfig配置中的按钮显示控制参数
* @param context 上下文
* @return PadConfigButtonVisibility对象包含各按钮的显示控制参数
*/
public static PadConfigButtonVisibility getPadConfigButtonVisibility(Context context) {
try {
DeviceSelectDataManager dataManager = DeviceSelectDataManager.getInstance(context);
PadApiService.PadConfig padConfig = dataManager.getPadConfig();
if (padConfig != null) {
PadConfigButtonVisibility visibility = new PadConfigButtonVisibility();
visibility.isShowGateBtn = padConfig.getIsShowGateBtn() == 1;
visibility.isCodeVerify = padConfig.getIsCodeVerify() == 1;
visibility.isScanCodeVerify = padConfig.getIsScanCodeVerify() == 1;
visibility.isScanVerify = padConfig.getIsScanVerify() == 1;
Log.d(TAG, "获取按钮显示配置: 开门按钮=" + visibility.isShowGateBtn +
", 验证码开门=" + visibility.isCodeVerify +
", 扫码器开门=" + visibility.isScanCodeVerify +
", 扫码开门=" + visibility.isScanVerify);
return visibility;
} else {
Log.w(TAG, "无法获取PadConfig,返回默认按钮显示配置");
return new PadConfigButtonVisibility(); // 返回默认配置全部显示
}
} catch (Exception e) {
Log.e(TAG, "获取按钮显示配置时发生异常: " + e.getMessage(), e);
return new PadConfigButtonVisibility(); // 异常时返回默认配置全部显示
}
}
/**
* 播放音频提示
* 根据用户确认信息暂时只输出日志
* @param audioType 音频类型离场成功订单超期需要扫码补缴等
@ -182,6 +215,26 @@ public class VenueSceneUtils {
}
/**
* 按钮显示配置信息类
*/
public static class PadConfigButtonVisibility {
public boolean isShowGateBtn = true; // 开门按钮显示控制
public boolean isCodeVerify = true; // 验证码验证控制
public boolean isScanCodeVerify = true; // 扫码器验证控制
public boolean isScanVerify = true; // 扫码验证控制
@Override
public String toString() {
return "PadConfigButtonVisibility{" +
"isShowGateBtn=" + isShowGateBtn +
", isCodeVerify=" + isCodeVerify +
", isScanCodeVerify=" + isScanCodeVerify +
", isScanVerify=" + isScanVerify +
'}';
}
}
/**
* 从本地存储的select_response中获取pad_setting并返回JSON数据
* @param context 上下文
* @return pad_setting的JSON字符串如果获取失败返回空字符串

1
app/src/main/res/layout/activity_oxface_online.xml

@ -296,6 +296,7 @@
android:background="@drawable/rounded_square_background" />
<TextView
android:id="@+id/tv_scan_door_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="扫码开门"

Loading…
Cancel
Save