fix(alignment): detach 상태에서 Start 눌러도 계속 팝업만 뜨는 무한루프 fix
증상 (사용자 보고 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 이 항상 진짜 상태를 판정.
This commit is contained in:
@@ -1233,15 +1233,14 @@ fun PlacementGuideView(appState: AppState) {
|
|||||||
if (waitingForStart) {
|
if (waitingForStart) {
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
// 2026-08-04: 탈착 상태에서 Start 눌러도 진행 안 되던 사용자 혼란 fix.
|
// 2026-08-11 재수정: 이전 fix (prevDetached true 면 팝업+차단) 는
|
||||||
// 기존: waitingForStart=false → 다음 scan 이 detach 재감지 → 다시
|
// auto-scan 멈춘 사이 prevDetached 값이 stale 인 문제 있음.
|
||||||
// waitingForStart=true 로 회귀 · rising edge 이미 소진되어 팝업 없음.
|
// → 사용자가 재부착해도 상태 갱신 X · Start 누를 때마다 팝업만.
|
||||||
// 변경: onClick 시점에 prevDetached 감지 → 팝업 재발생 + Start 진행 차단.
|
// 현재 정책: stale 상태 리셋하고 첫 scan 이 재판정. 실제로 detach
|
||||||
// "센서 부착 후 다시 시도" 를 사용자에게 명확히 안내.
|
// 이면 첫 scan rising edge (line 882) 로 팝업 자동 재발생 →
|
||||||
if (prevDetached) {
|
// waitingForStart=true 자동 회귀. 실제 부착이면 정상 진행.
|
||||||
showDetachAlert = true
|
prevDetached = false
|
||||||
return@Button
|
showDetachAlert = false
|
||||||
}
|
|
||||||
waitingForStart = false
|
waitingForStart = false
|
||||||
isContinuousMode = true
|
isContinuousMode = true
|
||||||
// V2 alignment 리셋 — baseline 동안 silent push 가 없었더라도 안전망.
|
// V2 alignment 리셋 — baseline 동안 silent push 가 없었더라도 안전망.
|
||||||
|
|||||||
Reference in New Issue
Block a user