최근 갱신 시각: altitudeTimestamp 우선, 없으면 마지막 steps 페이로드 timestamp 폴백
에뮬레이터 한계 대응: 실제 센서 없을 경우 ‘-’ 출력 및 Mock 옵션 향후 추가 계획 수립
Wear 모듈 build.gradle.kts에 compose.compiler 및 namespace=phone 앱 동일 값 적용
// ViewModel 고도 상태 및 리스너 발췌 private val _altitudeMeters = MutableStateFlow<Double?>(null) val altitudeMeters: StateFlow<Double?> = _altitudeMeters private val _altitudeTimestamp = MutableStateFlow<Long?>(null) val altitudeTimestamp: StateFlow<Long?> = _altitudeTimestamp
wearDataSyncManager.listener = object : WearDataSyncManager.Listener { override fun onAltitudeUpdate(altitudeMeters: Double, timestamp: Long, source: String) { _altitudeMeters.value = altitudeMeters _altitudeTimestamp.value = timestamp } // ... steps, gesture 등 다른 콜백 }
// SettingsScreen 고도 단위 토글 (Button / OutlinedButton) Row { Text("고도 단위: ") if (unit == "m") { Button(onClick = { unit = "m" }) { Text("m") } OutlinedButton(onClick = { unit = "ft" }) { Text("ft") } } else { OutlinedButton(onClick = { unit = "m" }) { Text("m") } Button(onClick = { unit = "ft" }) { Text("ft") } } }
결과 (Result)
빌드 실패 원인이었던 SegmentedButton 관련 심볼 제거 후 컴파일 성공
고도 실시간 값 및 최근 갱신 시각 UI 노출 로직 정상 반영 (실기기 테스트 필요)
Wear/Phone 동일 namespace & applicationId 적용으로 코드/로그 추적 용이
제스처 인식 시작/종료 UI 명확해져 사용자 경험 개선
✅ SettingsScreen 컴파일 오류 제거
✅ Altitude 실시간 상태 흐름(StateFlow) 구축
⚠️ AVD 센서 미동작: 실제 기기 테스트 대기
댓글 없음:
댓글 쓰기