diff --git a/app/src/main/java/com/medithings/vesiscan/ui/views/clinical/ClinicalLiveView.kt b/app/src/main/java/com/medithings/vesiscan/ui/views/clinical/ClinicalLiveView.kt index 571c000..8567545 100644 --- a/app/src/main/java/com/medithings/vesiscan/ui/views/clinical/ClinicalLiveView.kt +++ b/app/src/main/java/com/medithings/vesiscan/ui/views/clinical/ClinicalLiveView.kt @@ -127,8 +127,8 @@ fun ClinicalLiveView(appState: AppState) { pendingPiezo = null } onDispose { - bleManager.piezoCollector.onMultiChannelComplete = null - bleManager.imuCollector.onComplete = null + // 2026-07-07 fix: null 정리 제거 (PiezoMonitoringView posture chip stuck 이슈). + // 다음 화면 진입 시 자기 콜백으로 어차피 덮어쓰므로 stale 콜백 무해. } } diff --git a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt index e78538b..47a88dd 100644 --- a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt +++ b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PlacementGuideView.kt @@ -162,15 +162,14 @@ fun PlacementGuideView(appState: AppState) { sweepLastDetected = 0; sweepEverSawAll = false } - // 화면 벗어날 때 LED OFF + 콜백 정리. - // 2026-07-07 fix: piezoCollector.onMultiChannelComplete / imuCollector.onComplete 는 - // PlacementGuide 진입 시 자기 콜백으로 덮어쓰는데, 이탈 시 정리하지 않으면 다음 - // 화면 (PiezoMonitoring 등) 의 콜백과 stale reference 가 뒤엉킴. + // 화면 벗어날 때 LED OFF. + // 2026-07-07 fix: imuCollector.onComplete / piezoCollector.onMultiChannelComplete + // null 정리 제거. Compose 재구성 timing 문제로 PiezoMonitoringView 콜백 세팅 직후 + // 여기 onDispose 가 실행되어 null 로 덮어써 posture "감지 중" 무한 유지 발생. + // 다음 화면 진입 시 자기 LaunchedEffect 가 어차피 자기 콜백으로 덮어씀. androidx.compose.runtime.DisposableEffect(Unit) { onDispose { bleManager.sendLedMode(0) - bleManager.piezoCollector.onMultiChannelComplete = null - bleManager.imuCollector.onComplete = null } }