diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index 36b97d4..08b415a 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -206,7 +206,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 方案二:添加状态标识控制订单选择页面的显示,避免重复弹出 private static boolean isOrderSelectionActivityShowing = false; // 订单选择页面是否正在显示 - + private static boolean isOrderVerificationResultActivityShowing = false; // 订单核销结果页面是否正在显示 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -2793,6 +2793,8 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi 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"); // 添加新的广播动作 + filter.addAction("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_SHOWING"); // 订单核销结果页面正在显示 + filter.addAction("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_HIDDEN"); // 订单核销结果页面已隐藏 registerReceiver(cameraControlReceiver, filter); LogManager.logInfo(TAG, "摄像头控制广播接收器已注册"); } @@ -2809,6 +2811,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi pauseCamera(); LogManager.logInfo(TAG, "接收到暂停摄像头预览广播"); } else if ("com.ouxuan.oxface.ACTION_RESUME_CAMERA".equals(action)) { + // 检查是否有订单核销结果页面正在显示,如果有则不恢复摄像头预览 + if (isOrderVerificationResultActivityShowing) { + LogManager.logInfo(TAG, "订单核销结果页面正在显示,不恢复摄像头预览"); + return; + } + // 恢复摄像头预览 resumeCamera(); LogManager.logInfo(TAG, "接收到恢复摄像头预览广播"); @@ -2816,6 +2824,18 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 方案二:重置订单选择页面显示状态 isOrderSelectionActivityShowing = false; LogManager.logInfo(TAG, "接收到重置订单选择页面显示状态广播"); + } else if ("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_SHOWING".equals(action)) { + // 订单核销结果页面正在显示 + isOrderVerificationResultActivityShowing = true; + LogManager.logInfo(TAG, "接收到订单核销结果页面正在显示广播"); + } else if ("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_HIDDEN".equals(action)) { + // 订单核销结果页面已隐藏 + isOrderVerificationResultActivityShowing = false; + LogManager.logInfo(TAG, "接收到订单核销结果页面已隐藏广播"); + + // 恢复摄像头预览 + resumeCamera(); + LogManager.logInfo(TAG, "订单核销结果页面已隐藏,恢复摄像头预览"); } } } diff --git a/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java b/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java index 9c9883c..1895f30 100644 --- a/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java @@ -85,6 +85,9 @@ public class OrderVerificationResultActivity extends AppCompatActivity { // 注册强制关闭广播接收器 registerForceCloseReceiver(); + // 通知OXFaceOnlineActivity订单核销结果页面正在显示 + notifyOrderVerificationResultShowing(); + LogManager.logInfo(TAG, "订单核销结果Activity启动成功"); } @@ -621,6 +624,8 @@ public class OrderVerificationResultActivity extends AppCompatActivity { Toast.makeText(this, confirmMessage, Toast.LENGTH_SHORT).show(); + // 通知OXFaceOnlineActivity订单核销结果页面已隐藏 + notifyOrderVerificationResultHidden(); finish(); } @@ -658,8 +663,8 @@ public class OrderVerificationResultActivity extends AppCompatActivity { @Override public void onBackPressed() { super.onBackPressed(); - // 恢复摄像头预览 - resumeCameraPreview(); + // 通知OXFaceOnlineActivity订单核销结果页面已隐藏 + notifyOrderVerificationResultHidden(); finish(); } @@ -670,8 +675,8 @@ public class OrderVerificationResultActivity extends AppCompatActivity { // 停止倒计时 stopCountdown(); - // 恢复摄像头预览 - resumeCameraPreview(); + // 通知OXFaceOnlineActivity订单核销结果页面已隐藏 + notifyOrderVerificationResultHidden(); // 取消注册广播接收器 if (forceCloseReceiver != null) { @@ -682,7 +687,7 @@ public class OrderVerificationResultActivity extends AppCompatActivity { } } - LogManager.logInfo(TAG, "订单核销结果页面已销毁,摄像头已恢复"); + LogManager.logInfo(TAG, "订单核销结果页面已销毁"); } /** @@ -766,6 +771,32 @@ public class OrderVerificationResultActivity extends AppCompatActivity { } /** + * 通知OXFaceOnlineActivity订单核销结果页面正在显示 + */ + private void notifyOrderVerificationResultShowing() { + try { + Intent intent = new Intent("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_SHOWING"); + sendBroadcast(intent); + LogManager.logInfo(TAG, "已发送订单核销结果页面正在显示广播"); + } catch (Exception e) { + LogManager.logError(TAG, "发送订单核销结果页面正在显示广播失败", e); + } + } + + /** + * 通知OXFaceOnlineActivity订单核销结果页面已隐藏 + */ + private void notifyOrderVerificationResultHidden() { + try { + Intent intent = new Intent("com.ouxuan.oxface.ACTION_ORDER_VERIFICATION_RESULT_HIDDEN"); + sendBroadcast(intent); + LogManager.logInfo(TAG, "已发送订单核销结果页面已隐藏广播"); + } catch (Exception e) { + LogManager.logError(TAG, "发送订单核销结果页面已隐藏广播失败", e); + } + } + + /** * 注册强制关闭广播接收器 */ private void registerForceCloseReceiver() {