From 1e3610ca0fe6ac08179ac789ec158d63b5005906 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Tue, 4 Aug 2026 15:24:05 +0900 Subject: [PATCH] =?UTF-8?q?fix(alignment):=20=ED=83=88=EC=B0=A9=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EC=97=90=EC=84=9C=20Start=20=EB=88=84?= =?UTF-8?q?=EB=A5=BC=20=EC=8B=9C=20=ED=8C=9D=EC=97=85=20=EC=9E=AC=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=20+=20=EC=A7=84=ED=96=89=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 증상 (사용자 보고 2026-08-04): 1. 센서 탈착 → "센서 분리" 팝업 뜸 (rising edge · 1회) 2. 사용자가 팝업 dismiss 3. 센서 여전히 탈착 상태 · 사용자가 "정렬 시작" 버튼 다시 누름 4. 팝업 안 뜨고 스텝만 0/3 → 1/3 → 0/3 회귀 · 이유 없이 되돌려짐 원인: - Start onClick 은 waitingForStart=false 로 진행만 시킴 - 다음 scan cycle 이 line 883 (detach 지속) 감지 → waitingForStart=true 재설정 - showDetachAlert 는 `nowDetached && !prevDetached` rising edge 만 발동 → prev 여전히 true 라 팝업 재발생 안 됨 - 결과: 스텝이 침묵 회귀 · 사용자 혼란 수정: Start onClick 진입 시 prevDetached=true 이면 즉시 showDetachAlert=true 후 return. Start 진행 자체가 차단됨 · 사용자에게 "센서 부착 후 다시 시도" 명확 안내. --- .../vesiscan/ui/views/monitoring/PlacementGuideView.kt | 9 +++++++++ 1 file changed, 9 insertions(+) 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 694643d..ba4957d 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 @@ -1208,6 +1208,15 @@ fun PlacementGuideView(appState: AppState) { if (waitingForStart) { Button( onClick = { + // 2026-08-04: 탈착 상태에서 Start 눌러도 진행 안 되던 사용자 혼란 fix. + // 기존: waitingForStart=false → 다음 scan 이 detach 재감지 → 다시 + // waitingForStart=true 로 회귀 · rising edge 이미 소진되어 팝업 없음. + // 변경: onClick 시점에 prevDetached 감지 → 팝업 재발생 + Start 진행 차단. + // "센서 부착 후 다시 시도" 를 사용자에게 명확히 안내. + if (prevDetached) { + showDetachAlert = true + return@Button + } waitingForStart = false isContinuousMode = true // V2 alignment 리셋 — baseline 동안 silent push 가 없었더라도 안전망.