ux: Sensor Alignment hint 1/2 둘 다 상시 표시 (레이아웃 안정)
이전: waitingForStart 분기로 hint1 또는 hint2 하나만 표시 → 시작 누르면
레이아웃이 위아래 이동.
변경: 두 hint 영역 모두 항상 렌더 → 일러스트/Step 위치 고정.
Hint 1 (일러스트 위): 'Place VesiScan above the pubic bone, then press Start'
(시작 안내, 고정)
Hint 2 (일러스트 아래): displayHint (동적 — 시작 전엔 안내문, 진행 중엔 방향)
waitingForStart 초기 상태에는 hint 1/2 가 비슷한 메시지 보일 수 있음 (의도된
동작 — 레이아웃 안정성 우선).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+26
-32
@@ -221,23 +221,20 @@ fun PlacementGuideView(appState: AppState) {
|
||||
.padding(horizontal = 24.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
// ─── (1) Hint 1 — 시작 전 안내 ("pubic bone 위에 놓으세요") ───
|
||||
// waitingForStart 일 때만 표시. 시작 후엔 빈 공간.
|
||||
if (waitingForStart) {
|
||||
val hint1Bg = Color(0xFFFFF3E0)
|
||||
Text(
|
||||
text = "Place VesiScan above the pubic bone, then press Start",
|
||||
fontSize = 26.sp, // 태블릿: 더 크게
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(hint1Bg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||
)
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
}
|
||||
// ─── (1) Hint 1 — 시작 전 안내 (항상 표시, 레이아웃 안정) ───
|
||||
val hint1Bg = Color(0xFFFFF3E0)
|
||||
Text(
|
||||
text = "Place VesiScan above the pubic bone, then press Start",
|
||||
fontSize = 26.sp, // 태블릿: 더 크게
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(hint1Bg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||
)
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
// 타이틀은 top bar 로 이동 (← 옆 절대 가운데) — 본문 중복 제거.
|
||||
|
||||
// ── 가이드 텍스트 (Step 아래, 몸 위) — "pubic bone" 인라인 빨강 ExtraBold 강조 ──
|
||||
@@ -486,21 +483,18 @@ fun PlacementGuideView(appState: AppState) {
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
// ─── (5) Hint 2 — 측정 중 방향 안내 ("Slide up slightly ↑" 등) ───
|
||||
// waitingForStart 가 아닐 때 (=scanning 또는 phaseHold) 만 표시.
|
||||
if (!waitingForStart) {
|
||||
Text(
|
||||
text = displayHint,
|
||||
fontSize = 28.sp, // 22 → 28 (태블릿)
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(hintBg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||
)
|
||||
}
|
||||
// ─── (5) Hint 2 — 측정 중 방향 안내 (항상 표시, 레이아웃 안정) ───
|
||||
Text(
|
||||
text = displayHint,
|
||||
fontSize = 28.sp, // 22 → 28 (태블릿)
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(hintBg.copy(alpha = 0.7f), RoundedCornerShape(16.dp))
|
||||
.padding(horizontal = 20.dp, vertical = 14.dp)
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user