diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt index 4ad3445..14fcc58 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PlacementGuideView.kt @@ -1935,11 +1935,11 @@ private fun computePlacementGuide( } // Edge 비대칭 — ch3 짧음 (센서 너무 아래) → 위로 미세 조정 !edgePass && edgeAsym > 0 -> { - adjustHint = "Slide up slightly ↑ (ch3 short)"; adjustIcon = "arrow.up" + adjustHint = "Slide up slightly ↑"; adjustIcon = "arrow.up" } // Edge 비대칭 — ch0 짧음 (센서 너무 위) → 아래로 미세 조정 !edgePass && edgeAsym < 0 -> { - adjustHint = "Slide down slightly ↓ (ch0 short)"; adjustIcon = "arrow.down" + adjustHint = "Slide down slightly ↓"; adjustIcon = "arrow.down" } gradient > 0.3 -> { adjustHint = "Slide down ↓"; adjustIcon = "arrow.down" @@ -1966,8 +1966,11 @@ private fun computePlacementGuide( } } } - // 구체적 방향(↑↓←→)이면 VERTICAL 복귀, 아니면 GREEN 유지 - val stayGreen = adjustIcon == "checkmark.circle" + // 구체적 방향(↑↓←→)이면 보통 VERTICAL 복귀, 아니면 GREEN 유지. + // 단 edge 만 fail(CV·lr 통과)인 케이스는 mm 단위 미세조정이라 + // GREEN 그대로 유지 — step indicator 3 → 1 회귀 방지. + val edgeOnlyFail = !edgePass && cv <= cvThr && lrPass && rPeakOk + val stayGreen = adjustIcon == "checkmark.circle" || edgeOnlyFail val nextPh = if (stayGreen) PlacementPhase.GREEN else PlacementPhase.VERTICAL return PlacementGuideResult(adjustHint, adjustIcon, 50, cv, false, lrDev, lrPass, phase = PlacementPhase.GREEN, nextPhase = nextPh)