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 9537a46..a720c11 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
@@ -226,7 +226,7 @@ fun PlacementGuideView(appState: AppState) {
val hint = directionHint.ifEmpty { " " }
append(hint)
if (hint.startsWith("Slide") || hint.startsWith("Optimizing") ||
- hint.startsWith("Centering") || hint.startsWith("Adjust")) {
+ hint.startsWith("Checking") || hint.startsWith("Adjust")) {
append(dots)
}
if (appState.isDevMode && !lastCv.isNaN()) {
@@ -685,7 +685,17 @@ fun PlacementGuideView(appState: AppState) {
} else if (phaseProtected && phaseHoldHint.isNotEmpty()) {
// 보호 중 → 전환 힌트 강제 유지, lastHintChangeMs 안 건드림
directionHint = phaseHoldHint
- directionIcon = "checkmark.circle"
+ // 힌트 텍스트에서 방향 아이콘 추론 (화살표 유지)
+ directionIcon = when {
+ phaseHoldHint.contains("up", ignoreCase = true) || phaseHoldHint.contains("↑") -> "arrow.up"
+ phaseHoldHint.contains("down", ignoreCase = true) || phaseHoldHint.contains("↓") -> "arrow.down"
+ phaseHoldHint.contains("left", ignoreCase = true) || phaseHoldHint.contains("←") -> "arrow.left"
+ phaseHoldHint.contains("right", ignoreCase = true) || phaseHoldHint.contains("→") -> "arrow.right"
+ else -> "checkmark.circle"
+ }
+ } else {
+ // 디바운스 중이라도 화살표 방향은 최신 상태로 갱신
+ directionIcon = guideResult.icon
}
// GREEN hold 중이면 힌트 강제 유지
@@ -1234,7 +1244,7 @@ private fun computePlacementGuide(
val detectedCount = detected.count { it }
if (detectedCount == 0) {
- return PlacementGuideResult("Slide up", "arrow.up", 0,
+ return PlacementGuideResult("Slide up ↑", "arrow.up", 0,
phase = PlacementPhase.VERTICAL, nextPhase = PlacementPhase.VERTICAL)
}
@@ -1292,7 +1302,7 @@ private fun computePlacementGuide(
val lrHint = when {
l4 > 0 && l5 > 0 && l4 > l5 -> "Slide left ←"
l4 > 0 && l5 > 0 && l5 > l4 -> "Slide right →"
- else -> "Centering"
+ else -> "Checking"
}
val lrIcon = when {
l4 > 0 && l5 > 0 && l4 > l5 -> "arrow.left"
@@ -1328,13 +1338,13 @@ private fun computePlacementGuide(
val hint: String; val icon: String
when {
(ch0det || ch1det) && !ch2det && !ch3det -> {
- hint = "Slide up"; icon = "arrow.up"
+ hint = "Slide up ↑"; icon = "arrow.up"
}
(ch3det || ch2det) && !ch0det && !ch1det -> {
- hint = "Slide down"; icon = "arrow.down"
+ hint = "Slide down ↓"; icon = "arrow.down"
}
else -> {
- hint = "Slide up"; icon = "arrow.up"
+ hint = "Slide up ↑"; icon = "arrow.up"
}
}
return PlacementGuideResult(hint, icon, centerDetected * 10,
@@ -1379,7 +1389,7 @@ private fun computePlacementGuide(
val ch5ok = detected.getOrElse(5) { false }
// 항상 LATERAL 단계를 거침 — 전환 시 항상 Checking 표시
- val lrHint = "Centering"
+ val lrHint = "Checking"
val lrIcon = "checkmark.circle"
val score = (40 + ((1.0 - kotlin.math.abs(gradient) / gradientThr) * 20).toInt())
.coerceIn(40, 60)
@@ -1396,16 +1406,16 @@ private fun computePlacementGuide(
val ch4ok = detected.getOrElse(4) { false }
val ch5ok = detected.getOrElse(5) { false }
// 항상 LATERAL 단계를 거침
- return PlacementGuideResult("Centering",
+ return PlacementGuideResult("Checking",
"checkmark.circle", 50,
phase = PlacementPhase.VERTICAL, nextPhase = PlacementPhase.LATERAL)
} else if (gradient > 0) {
- val intensity = if (gradient > 0.8) "Slide down" else "Slide down slightly"
+ val intensity = if (gradient > 0.8) "Slide down ↓" else "Slide down slightly ↓"
return PlacementGuideResult(intensity, "arrow.down",
(20 + centerDetected * 5).coerceAtMost(35),
phase = PlacementPhase.VERTICAL, nextPhase = PlacementPhase.VERTICAL)
} else {
- val intensity = if (gradient < -0.8) "Slide up" else "Slide up slightly"
+ val intensity = if (gradient < -0.8) "Slide up ↑" else "Slide up slightly ↑"
return PlacementGuideResult(intensity, "arrow.up",
(20 + centerDetected * 5).coerceAtMost(35),
phase = PlacementPhase.VERTICAL, nextPhase = PlacementPhase.VERTICAL)
@@ -1428,7 +1438,7 @@ private fun computePlacementGuide(
// 절대 차이 10 sample 이하 → 좌우 충분히 균등, 바로 GREEN
if (ch4det && ch5det && kotlin.math.abs(len4 - len5) <= 10) {
return PlacementGuideResult(
- "LR balanced. Final check...",
+ "Final check...",
"checkmark.circle", 60,
phase = PlacementPhase.LATERAL, nextPhase = PlacementPhase.GREEN)
}
@@ -1582,10 +1592,10 @@ private fun computePlacementGuide(
adjustHint = "Slide right →"; adjustIcon = "arrow.right"
}
gradient > 0.3 -> {
- adjustHint = "Slide down"; adjustIcon = "arrow.down"
+ adjustHint = "Slide down ↓"; adjustIcon = "arrow.down"
}
gradient < -0.3 -> {
- adjustHint = "Slide up"; adjustIcon = "arrow.up"
+ adjustHint = "Slide up ↑"; adjustIcon = "arrow.up"
}
else -> {
// 방향 애매 + CV 미달 → ch별 len 분석으로 방향 제시
@@ -1596,10 +1606,10 @@ private fun computePlacementGuide(
// 최소 채널이 최대의 60% 미만 → 약한 쪽으로 안내
if (minCh <= 1) {
// ch0/ch1 약함 → 위로
- adjustHint = "Slide up slightly"; adjustIcon = "arrow.up"
+ adjustHint = "Slide up slightly ↑"; adjustIcon = "arrow.up"
} else {
// ch2/ch3 약함 → 아래로
- adjustHint = "Slide down slightly"; adjustIcon = "arrow.down"
+ adjustHint = "Slide down slightly ↓"; adjustIcon = "arrow.down"
}
} else {
adjustHint = "Optimizing"; adjustIcon = "checkmark.circle"
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 8fde456..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index b070c76..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..8c3bd0e
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..8c3bd0e
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d..0000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..e4cc44a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d6..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..e4cc44a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611d..0000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d2da9db
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a307..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..d2da9db
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a695..0000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..079acbd
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..079acbd
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f50..0000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..d595cc2
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d642..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..d595cc2
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae3..0000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ