DashboardViewModel

ViewModel principal del dashboard que proporciona datos de salud y estados de servicio.

Esta clase es el punto central de comunicación entre la interfaz de usuario del dashboard y el repositorio de datos de salud. Gestiona la exposición de datos observables para la interfaz de usuario y proporciona funciones para interactuar con los servicios de monitoreo de salud.

Responsabilidades principales:

  • Observar y exponer datos de salud (frecuencia cardíaca, HRV, pasos, temperatura, etc.)

  • Gestionar el estado de múltiples servicios de monitoreo

  • Proporcionar datos formateados para la presentación en UI

  • Manejar el modo de emergencia y alertas críticas

  • Calcular y exponer métricas de estrés térmico

  • Rastrear niveles de actividad física y actividad acumulada

  • Proporcionar análisis de HRV con tendencias y recomendaciones

Arquitectura:

  • Extiende AndroidViewModel para acceso al contexto de aplicación

  • Utiliza StateFlow para exposición reactiva de datos

  • Interactúa con ServiceStateRepository como única fuente de verdad

  • Formatea datos para consumo directo por la UI

Parameters

application

El contexto de la aplicación Android

See also

Constructors

Link copied to clipboard
constructor(application: Application)

Properties

Link copied to clipboard
private val _mlIndicatorShowPercentage: <Error class: unknown class>
Link copied to clipboard
val currentActivityLevel: StateFlow<Int>

Flow que emite el nivel actual de actividad física (0-4).

Link copied to clipboard

Flow que emite el análisis actual de Variabilidad de Frecuencia Cardíaca.

Link copied to clipboard
val healthData: StateFlow<HealthData>

Flow que emite los datos de salud actuales.

Link copied to clipboard
val heatStressMetrics: <Error class: unknown class>

Flow que emite las métricas detalladas de estrés térmico.

Link copied to clipboard

Flow que emite el nivel actual de riesgo de estrés térmico.

Link copied to clipboard
val isEmergencyMode: StateFlow<Boolean>

Flow que indica si el modo de emergencia está activado.

Link copied to clipboard
Link copied to clipboard

Flow que emite el estado actual del modelo de Machine Learning.

Link copied to clipboard

Flujo que emite la última predicción de Machine Learning (ML) para el estrés térmico.

Link copied to clipboard

Repositorio singleton que gestiona el estado de todos los servicios de salud.

Link copied to clipboard

Flow que emite el estado actual de todos los servicios de monitoreo.

Link copied to clipboard
private val TAG: String
Link copied to clipboard

Gestor de predicciones de estrés térmico mediante Machine Learning (ML).

Link copied to clipboard

Formateador de tiempo para mostrar hora actual en formato HH:mm.

Inherited properties

Link copied to clipboard
Link copied to clipboard
private val impl: ViewModelImpl?

Functions

Link copied to clipboard
private fun calculateSlope(values: List<Double>): Double

Calcula la pendiente de una lista de valores para análisis de tendencias.

Link copied to clipboard
private fun enableMLModel()

Habilita el modelo ML si estaba deshabilitado.

Link copied to clipboard

Formatea la información de actividad combinando pasos e intensidad.

Link copied to clipboard

Formatea el nivel de riesgo de estrés térmico para mostrar en la UI.

Link copied to clipboard

Formatea el valor de HRV (Variabilidad de la Frecuencia Cardíaca) para mostrar en la UI.

Link copied to clipboard

Formatea la información de predicción ML para mostrar en la UI.

Link copied to clipboard
private fun formatStepCount(steps: Long): String

Formatea el conteo de pasos para mostrar de manera legible.

Link copied to clipboard
private fun getActivityIcon(): String

Obtiene un icono dinámico para actividad física basado en el nivel actual.

Link copied to clipboard
private fun getCurrentTime(): String

Obtiene la hora actual formateada para mostrar en la UI.

Link copied to clipboard

Obtiene la descripción textual de la calidad de datos.

Link copied to clipboard

Obtiene el mensaje de alerta apropiado para el nivel de estrés térmico.

Link copied to clipboard

Obtiene el mensaje de alerta apropiado para el estado actual de HRV.

Link copied to clipboard

Obtiene el color apropiado para mostrar indicadores de HRV.

Link copied to clipboard
private fun getHRVIcon(): String

Obtiene un icono dinámico para HRV basado en el nivel de estrés actual.

Link copied to clipboard

Obtiene un resumen rápido del estado de HRV para notificaciones.

Link copied to clipboard

Obtiene detalles de depuración de la predicción de Machine Learning (ML).

Link copied to clipboard

Obtiene información detallada del modelo ML para mostrar como tooltip.

Link copied to clipboard

Obtiene el color para el indicador ML basado en la predicción de riesgo de estrés térmico.

Link copied to clipboard

Obtiene el texto para mostrar en el indicador ML.

Link copied to clipboard

Obtiene una representación textual del estado actual del modelo de Machine Learning.

Link copied to clipboard

Recupera el color asociado con el estado actual del modelo de Machine Learning (ML).

Link copied to clipboard

Recupera un icono que representa el estado actual del modelo de Machine Learning.

Link copied to clipboard

Obtiene la descripción textual de un estado de recuperación.

Link copied to clipboard

Obtiene el icono apropiado para un tipo de servicio.

Link copied to clipboard

Obtiene el estado actual de un servicio específico.

Link copied to clipboard

Obtiene el valor formateado de un servicio para mostrar en la UI.

Link copied to clipboard

Obtiene la descripción textual de un nivel de estrés.

Link copied to clipboard
private fun loadMLModel()

Carga el modelo de Machine Learning (ML) de TensorFlow Lite.

Link copied to clipboard

Maneja los clics en el indicador del modelo de Machine Learning (ML).

Link copied to clipboard
private fun parseDataQuality(qualityString: String?): HRVCalculator.DataQuality?

Convierte una cadena de calidad de datos a su valor enum correspondiente.

Link copied to clipboard

Convierte una cadena de nivel de estrés a su valor enum correspondiente.

Link copied to clipboard
private fun reloadMLModel()

Recarga el modelo de Machine Learning (ML).

Link copied to clipboard

Verifica si se debe mostrar una alerta de estrés térmico.

Link copied to clipboard

Verifica si se debe mostrar una alerta de HRV en la UI.

Link copied to clipboard

Determina si se debe mostrar una alerta de ML basada en la predicción actual.

Link copied to clipboard

Alterna el estado del modo de emergencia.

Inherited functions

Link copied to clipboard
open fun addCloseable(closeable: AutoCloseable)
fun addCloseable(key: String, closeable: AutoCloseable)
Link copied to clipboard
open fun <T : Application> getApplication(): T
Link copied to clipboard
Link copied to clipboard
protected open fun onCleared()