Browse Source

fix open select twice

devab
MTing 4 weeks ago
parent
commit
2a04532ba0
  1. 26
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  2. 9
      app/src/main/java/com/ouxuan/oxface/orderOX/OrderSelectionActivity.java

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

@ -203,6 +203,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
private GateABController gateABController;
private ABGateManager abGateManager;
private boolean isGateCheckEnabled = false; // AB门检测是否开启
// 方案二添加状态标识控制订单选择页面的显示避免重复弹出
private static boolean isOrderSelectionActivityShowing = false; // 订单选择页面是否正在显示
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -211,6 +214,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
android.util.Log.d(TAG, "onCreate方法开始执行");
LogManager.logInfo(TAG, "OXFaceOnlineActivity onCreate开始");
// 方案二初始化订单选择页面显示状态
isOrderSelectionActivityShowing = false;
mContext = this;
// 初始化LoginDataManager
@ -461,6 +467,15 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
@Override
public void navigateToOrderSelectionPage(String orderData, int verificationType, String faceBase64) {
// 方案二检查订单选择页面是否已经显示避免重复弹出
if (isOrderSelectionActivityShowing) {
LogManager.logInfo(TAG, "订单选择页面已经在显示中,避免重复启动");
return;
}
// 设置标识为true表示订单选择页面即将显示
isOrderSelectionActivityShowing = true;
// 在跳转到订单选择页面时暂停摄像头
// pauseCameraWithTimeout();
pauseCamera();
@ -2335,6 +2350,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
resumeCamera();
LogManager.logInfo(TAG, "恢复摄像头预览 - 使用resumeCamera方法");
// 方案二重置订单选择页面显示状态
isOrderSelectionActivityShowing = false;
if (resultCode == RESULT_OK && data != null) {
// 处理订单选择结果
String selectedOrderJson = data.getStringExtra("selected_order");
@ -2772,6 +2790,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
IntentFilter filter = new IntentFilter();
filter.addAction("com.ouxuan.oxface.ACTION_PAUSE_CAMERA");
filter.addAction("com.ouxuan.oxface.ACTION_RESUME_CAMERA");
filter.addAction("com.ouxuan.oxface.ACTION_RESET_ORDER_SELECTION_STATUS"); // 添加新的广播动作
registerReceiver(cameraControlReceiver, filter);
LogManager.logInfo(TAG, "摄像头控制广播接收器已注册");
}
@ -2791,6 +2810,10 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
// 恢复摄像头预览
resumeCamera();
LogManager.logInfo(TAG, "接收到恢复摄像头预览广播");
} else if ("com.ouxuan.oxface.ACTION_RESET_ORDER_SELECTION_STATUS".equals(action)) {
// 方案二重置订单选择页面显示状态
isOrderSelectionActivityShowing = false;
LogManager.logInfo(TAG, "接收到重置订单选择页面显示状态广播");
}
}
}
@ -2921,6 +2944,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
LogManager.logError(TAG, "发送强制关闭对话框广播失败", e);
}
// 方案二重置订单选择页面显示状态
isOrderSelectionActivityShowing = false;
LogManager.logWarning(TAG, "摄像头已强制恢复,所有对话框已关闭");
}

9
app/src/main/java/com/ouxuan/oxface/orderOX/OrderSelectionActivity.java

@ -631,6 +631,15 @@ public class OrderSelectionActivity extends AppCompatActivity {
LogManager.logError(TAG, "发送恢复摄像头预览广播失败", e);
}
// 发送广播通知OXFaceOnlineActivity重置订单选择页面显示状态
try {
Intent intent = new Intent("com.ouxuan.oxface.ACTION_RESET_ORDER_SELECTION_STATUS");
sendBroadcast(intent);
LogManager.logInfo(TAG, "已发送重置订单选择页面显示状态广播");
} catch (Exception e) {
LogManager.logError(TAG, "发送重置订单选择页面显示状态广播失败", e);
}
LogManager.logInfo(TAG, "订单选择页面销毁");
}

Loading…
Cancel
Save