From 1aa15fad1a4cb6b90188509fbd4aa6249125197c Mon Sep 17 00:00:00 2001 From: jjangddu Date: Tue, 11 Aug 2026 10:31:33 +0900 Subject: [PATCH] =?UTF-8?q?fix(alignment):=20detach=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=97=90=EC=84=9C=20Start=20=EB=88=8C=EB=9F=AC=EB=8F=84=20?= =?UTF-8?q?=EA=B3=84=EC=86=8D=20=ED=8C=9D=EC=97=85=EB=A7=8C=20=EB=9C=A8?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B4=ED=95=9C=EB=A3=A8=ED=94=84=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 증상 (사용자 보고 2026-08-11 · demo-final): Alignment 중 detach 판정 → 팝업 + step 0/3 회귀. 사용자 재부착 후 Start 버튼 눌러도 "다시 부착하세요" 팝업만 계속. 원인: 이전 fix (2026-08-04) 는 Start onClick 시 prevDetached=true 면 팝업 재발생 + 진행 차단. 의도는 "부착 안 하고 Start 눌렀을 때 안내". 문제: waitingForStart=true 상태에서는 auto-scan (isContinuousMode=false) 이 멈춰 있어 prevDetached 값이 갱신 안 됨. 사용자가 실제 재부착해도 prevDetached 는 이전 detach 값이 stale 하게 남아 Start 눌러도 항상 팝업. 수정: Start onClick 시 stale 상태 리셋 (prevDetached=false, showDetachAlert=false) 후 정상 진행. 실제 detach 이면 첫 scan cycle 의 rising edge (line 882) 로 팝업 자동 재발생 + waitingForStart=true 회귀 → 안내 유지. 실제 부착이면 정상 진행. auto-scan 이 항상 진짜 상태를 판정. --- .../ui/views/monitoring/PlacementGuideView.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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 5808638..2a89d24 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 @@ -1233,15 +1233,14 @@ 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 - } + // 2026-08-11 재수정: 이전 fix (prevDetached true 면 팝업+차단) 는 + // auto-scan 멈춘 사이 prevDetached 값이 stale 인 문제 있음. + // → 사용자가 재부착해도 상태 갱신 X · Start 누를 때마다 팝업만. + // 현재 정책: stale 상태 리셋하고 첫 scan 이 재판정. 실제로 detach + // 이면 첫 scan rising edge (line 882) 로 팝업 자동 재발생 → + // waitingForStart=true 자동 회귀. 실제 부착이면 정상 진행. + prevDetached = false + showDetachAlert = false waitingForStart = false isContinuousMode = true // V2 alignment 리셋 — baseline 동안 silent push 가 없었더라도 안전망.