Setup: Auto Scan Interval을 별도 화면(AUTO_SCAN_SETUP)으로 분리

사내 피드백: PiezoPersonalization 한 화면에 카드 3개를 모은 게 아니라
MaxCapacity 다음 단계로 Auto Scan Interval 화면을 독립적으로 띄우길 원함.

흐름 변경:
  before: DeviceScan → PiezoPersonalization (MaxCapacity + Catheter + AutoScan) → Placement
  after:  DeviceScan → PiezoPersonalization (MaxCapacity + Catheter) → AutoScanSetup → Placement

변경:
  - PiezoPersonalizationView 원복: 2카드 / verticalScroll 제거 / spacing 64dp 중앙 정렬
  - AutoScanIntervalSetupView 신규 — Bladdy hero + 큰 카드 + Continue 버튼
  - AppScreen.AUTO_SCAN_SETUP enum 추가
  - personalizationComplete() → AUTO_SCAN_SETUP으로 이동
  - autoScanSetupComplete() 신설 — PlacementGuide로 진행, piezoSettings persist
  - backFromPlacementGuide() — setup 흐름이면 AUTO_SCAN_SETUP으로 돌아감
  - MainActivity 라우팅 + Back handler 추가 (AUTO_SCAN_SETUP → PiezoPersonalization)

PiezoMonitoring의 in-monitoring settings 슬라이더는 그대로 유지 — 측정 중에도
같은 PiezoSettings.autoScanIntervalMs 값을 조정 가능.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-04 16:15:39 +09:00
parent 9b090a4c8e
commit 2ae5eecb20
4 changed files with 190 additions and 60 deletions
@@ -12,7 +12,8 @@ import com.example.medilightv2android.services.*
enum class AppScreen {
ONBOARDING, CONSENT, REGISTRATION, HOME, SENSOR_SELECT, DEVICE_SCAN,
NIRS_CALIBRATION, PIEZO_PERSONALIZATION, PLACEMENT_GUIDE, PIN_SETUP, PIN_ENTRY,
NIRS_CALIBRATION, PIEZO_PERSONALIZATION, AUTO_SCAN_SETUP, // ★ MaxCapacity 다음 단계 — Auto Scan Interval 별도 화면
PLACEMENT_GUIDE, PIN_SETUP, PIN_ENTRY,
VIVAMYO_MONITORING, PIEZO_MONITORING, MEASUREMENT_HISTORY,
VOIDING_DIARY, URINE_CAMERA, REMINDER_SETTINGS,
CLINICAL_HOME, // ★ Dev 모드 한정 — 임상 R&D 측정 세션 화면 (입력 폼)
@@ -135,6 +136,13 @@ class AppState(private val context: Context) {
fun personalizationComplete() {
storage.piezoSettings = piezoSettings
placementFromMonitoring = false
// MaxCapacity 화면 다음에 AutoScan Interval 설정 화면을 거쳐 Placement로 진행
currentScreen = AppScreen.AUTO_SCAN_SETUP
}
/** Auto Scan Interval 설정 화면 → Placement Guide */
fun autoScanSetupComplete() {
storage.piezoSettings = piezoSettings
currentScreen = AppScreen.PLACEMENT_GUIDE
}
@@ -161,7 +169,7 @@ class AppState(private val context: Context) {
fun backFromPlacementGuide() {
currentScreen = if (placementFromMonitoring) AppScreen.PIEZO_MONITORING
else AppScreen.PIEZO_PERSONALIZATION
else AppScreen.AUTO_SCAN_SETUP // setup 흐름: Placement ← AutoScan ← MaxCapacity
placementFromMonitoring = false
}