From 49aab7b175e34bbf648fa959db87fd50bebea63b Mon Sep 17 00:00:00 2001 From: jjangddu Date: Tue, 7 Jul 2026 09:24:33 +0900 Subject: [PATCH] =?UTF-8?q?fix(align):=206=EB=8B=A8=EA=B3=84=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=ED=9B=84=20"=EC=B8=A1=EC=A0=95=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91"=20=EB=B2=84=ED=8A=BC=20=ED=99=9C=EC=84=B1=ED=99=94?= =?UTF-8?q?=20=E2=80=94=20FINAL=5FCONFIRM=20=EC=9D=B8=EC=8B=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존 finalStop 조건이 `phase == LR_BALANCE` 만 인정했는데, 실제로는 LR_BALANCE 에서 imbal 통과 즉시 `phase = FINAL_CONFIRM` 으로 바뀌어 반환되므로 이 조건에 걸리지 않았음. FINAL_CONFIRM 5프레임 도달 후 STOP + align_complete 반환 시점에도 phase 는 FINAL_CONFIRM 이라 finalStop=false → isLocked 유지 안 됨 → 버튼 disabled. 수정: state=="commit" && phase==FINAL_CONFIRM && action==STOP 을 진짜 정렬 완료로 인정. Accum 중은 이미 앞 branch 로 빠지므로 안전. Co-Authored-By: Claude Opus 4.7 --- .../vesiscan/ui/views/monitoring/PlacementGuideView.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 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 f25b587..04f4810 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 @@ -939,10 +939,13 @@ fun PlacementGuideView(appState: AppState) { placementScore = 5 } else { directionHint = localizedMsg - // STOP 액션은 두 경우 — CH3_STABILIZE 의 "위치 유지" (still in progress) vs - // LR_BALANCE 의 "정렬 완료" (truly done). 후자만 finalStop 으로 GREEN lock. + // STOP 액션은 여러 경우 — CH3_STABILIZE 위치 유지 / LR_BALANCE 유예 STOP / + // FINAL_CONFIRM 완료. 2026-07-07 fix: 진짜 완료는 FINAL_CONFIRM commit STOP. + // 이전 로직은 LR_BALANCE STOP 만 인정 → FINAL_CONFIRM 진입 즉시 phase 가 + // 바뀌면서 GREEN lock 이 풀려 "측정 시작" 버튼이 활성화 안 되는 버그가 있었다. val finalStop = st.action == com.medithings.vesiscan.managers.AlignAction.STOP && - v2Aligner.phase == com.medithings.vesiscan.managers.AlignGuide4Stage.Phase4.LR_BALANCE + st.state == "commit" && + v2Aligner.phase == com.medithings.vesiscan.managers.AlignGuide4Stage.Phase4.FINAL_CONFIRM directionIcon = when (st.action) { com.medithings.vesiscan.managers.AlignAction.MOVE_UP -> "arrow.up" com.medithings.vesiscan.managers.AlignAction.MOVE_DOWN -> "arrow.down"