UI: 회의 피드백 묶음 1 — Placement 가독성 + Voiding 표현/표시 + catheter 간격
회의 피드백 5건: #6 PlacementGuide(Sensor Alignment) 글자 가독성 - Step 1/3 indicator: 14sp MlPrimary → 22sp 검정 - "Sensor Alignment" 타이틀: 28sp Bold → 36sp ExtraBold (이미 검정) - 노란/초록 hint 박스 글자: 20sp hintFg(노랑/초록) → 26sp Bold 검정 (박스 배경 색은 의미 유지 — 노랑=조정 필요, 초록=Green zone) #7 Start Alignment 버튼 텍스트: White → Black #8 도넛차트 Voiding 버튼: "Voiding" → "Voiding / Catheterization" (12sp · TextAlign.Center · maxLines=2로 줄바꿈 허용) #9 도넛차트 mL 표시: Voiding 직후 displayMaxVolumeMl=0 + estimatedVolume=0 상태에서 "0 mL" 대신 "— mL" 표시 — 측정값이 없음을 명확히 #10 catheter "left" 간격: 2dp → 6dp (숫자와 텍스트 사이 여유) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+9
-4
@@ -35,6 +35,7 @@ import androidx.compose.ui.graphics.Path
|
||||
import androidx.compose.ui.graphics.PathEffect
|
||||
import androidx.compose.ui.graphics.drawscope.Stroke
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
@@ -903,7 +904,7 @@ fun PiezoMonitoringView(appState: AppState) {
|
||||
Icon(Icons.Default.LocalHospital, "Catheter", tint = MlPrimary, modifier = Modifier.size(16.dp))
|
||||
Spacer(modifier = Modifier.width(4.dp))
|
||||
Text("$cathCount", fontSize = (13 * fontScale).sp, fontWeight = FontWeight.Bold, color = MlPrimary)
|
||||
Spacer(modifier = Modifier.width(2.dp))
|
||||
Spacer(modifier = Modifier.width(6.dp))
|
||||
Text("left", fontSize = (10 * fontScale).sp, fontWeight = FontWeight.SemiBold,
|
||||
color = MlPrimary.copy(alpha = 0.7f))
|
||||
}
|
||||
@@ -1078,7 +1079,10 @@ fun PiezoMonitoringView(appState: AppState) {
|
||||
}
|
||||
Spacer(modifier = Modifier.height(4.dp))
|
||||
Text(
|
||||
if (displayMaxVolumeMl > 0) "${"%.0f".format(displayMaxVolumeMl)} mL" else "${appState.estimatedVolume} mL",
|
||||
// Voiding 직후엔 displayMaxVolumeMl=0이고 estimatedVolume도 0 → "0 mL"가 의미 없음 → "— mL"로
|
||||
if (displayMaxVolumeMl > 0) "${"%.0f".format(displayMaxVolumeMl)} mL"
|
||||
else if (appState.estimatedVolume > 0) "${appState.estimatedVolume} mL"
|
||||
else "— mL",
|
||||
fontSize = volFontSize,
|
||||
fontWeight = if (useScrollLayout) FontWeight.Bold else FontWeight.ExtraBold,
|
||||
color = urgency.accentColor,
|
||||
@@ -1137,8 +1141,9 @@ fun PiezoMonitoringView(appState: AppState) {
|
||||
disabledContainerColor = Color.Gray.copy(alpha = 0.3f)
|
||||
)
|
||||
) {
|
||||
Text("Voiding", fontSize = (14 * fontScale).sp,
|
||||
fontWeight = FontWeight.SemiBold, color = Color.White)
|
||||
Text("Voiding / Catheterization", fontSize = (12 * fontScale).sp,
|
||||
fontWeight = FontWeight.SemiBold, color = Color.White,
|
||||
textAlign = TextAlign.Center, maxLines = 2)
|
||||
}
|
||||
|
||||
// Auto (Spot 진행 중 봉인)
|
||||
|
||||
+8
-10
@@ -213,7 +213,7 @@ fun PlacementGuideView(appState: AppState) {
|
||||
}
|
||||
Text(
|
||||
text = "Step ${currentStepIdx + 1}/3",
|
||||
fontSize = 14.sp, fontWeight = FontWeight.Bold, color = MlPrimary
|
||||
fontSize = 22.sp, fontWeight = FontWeight.Bold, color = Color.Black
|
||||
)
|
||||
// 3-dot indicator: 완료(○ → ●), 현재(큰 ●), 미완료(○)
|
||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp),
|
||||
@@ -272,8 +272,8 @@ fun PlacementGuideView(appState: AppState) {
|
||||
// 타이틀 — 28sp Bold (Hint와의 강조 균형. 이전 38sp ExtraBold는 화면을 압도)
|
||||
Text(
|
||||
text = "Sensor Alignment",
|
||||
fontSize = 28.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
fontSize = 36.sp,
|
||||
fontWeight = FontWeight.ExtraBold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.fillMaxWidth().padding(vertical = 4.dp)
|
||||
@@ -308,14 +308,12 @@ fun PlacementGuideView(appState: AppState) {
|
||||
append(rawHint)
|
||||
}
|
||||
}
|
||||
// Hint 톤다운 — 28sp+큰 박스+빨강 강조 3중 중첩이었음.
|
||||
// 폰트 28→20sp, padding 18→12dp, 박스 alpha 살짝 ↓.
|
||||
// "pubic bone" 빨강 강조는 유지 (의도된 1점 강조).
|
||||
// 회의 피드백: hint 글자는 검정으로 통일 + 키우기. 박스 배경 색은 의미 유지(노랑=조정 필요/초록=Green).
|
||||
Text(
|
||||
text = displayHint,
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.SemiBold,
|
||||
color = hintFg,
|
||||
fontSize = 26.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
@@ -924,7 +922,7 @@ fun PlacementGuideView(appState: AppState) {
|
||||
shape = RoundedCornerShape(18.dp),
|
||||
colors = ButtonDefaults.buttonColors(containerColor = Color(0xFFFF9800))
|
||||
) {
|
||||
Text("Start Alignment", fontSize = 28.sp, fontWeight = FontWeight.Bold, color = Color.White)
|
||||
Text("Start Alignment", fontSize = 28.sp, fontWeight = FontWeight.Bold, color = Color.Black)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user