Dashboard View Model
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
El contexto de la aplicación Android
See also
Properties
Flow que emite el nivel actual de actividad física (0-4).
Flow que emite el análisis actual de Variabilidad de Frecuencia Cardíaca.
Flow que emite los datos de salud actuales.
Flow que emite las métricas detalladas de estrés térmico.
Flow que emite el nivel actual de riesgo de estrés térmico.
Flow que indica si el modo de emergencia está activado.
Flow que emite el estado actual del modelo de Machine Learning.
Flujo que emite la última predicción de Machine Learning (ML) para el estrés térmico.
Repositorio singleton que gestiona el estado de todos los servicios de salud.
Flow que emite el estado actual de todos los servicios de monitoreo.
Gestor de predicciones de estrés térmico mediante Machine Learning (ML).
Formateador de tiempo para mostrar hora actual en formato HH:mm.
Functions
Calcula la pendiente de una lista de valores para análisis de tendencias.
Habilita el modelo ML si estaba deshabilitado.
Formatea la información de actividad combinando pasos e intensidad.
Formatea el nivel de riesgo de estrés térmico para mostrar en la UI.
Formatea el valor de HRV (Variabilidad de la Frecuencia Cardíaca) para mostrar en la UI.
Formatea la información de predicción ML para mostrar en la UI.
Formatea el conteo de pasos para mostrar de manera legible.
Obtiene un icono dinámico para actividad física basado en el nivel actual.
Obtiene la hora actual formateada para mostrar en la UI.
Obtiene la descripción textual de la calidad de datos.
Obtiene el mensaje de alerta apropiado para el nivel de estrés térmico.
Obtiene el mensaje de alerta apropiado para el estado actual de HRV.
Obtiene el color apropiado para mostrar indicadores de HRV.
Obtiene un icono dinámico para HRV basado en el nivel de estrés actual.
Obtiene un resumen rápido del estado de HRV para notificaciones.
Obtiene detalles de depuración de la predicción de Machine Learning (ML).
Obtiene información detallada del modelo ML para mostrar como tooltip.
Obtiene el color para el indicador ML basado en la predicción de riesgo de estrés térmico.
Obtiene el texto para mostrar en el indicador ML.
Obtiene una representación textual del estado actual del modelo de Machine Learning.
Recupera el color asociado con el estado actual del modelo de Machine Learning (ML).
Recupera un icono que representa el estado actual del modelo de Machine Learning.
Obtiene la descripción textual de un estado de recuperación.
Obtiene el icono apropiado para un tipo de servicio.
Obtiene el estado actual de un servicio específico.
Obtiene el valor formateado de un servicio para mostrar en la UI.
Obtiene la descripción textual de un nivel de estrés.
Carga el modelo de Machine Learning (ML) de TensorFlow Lite.
Maneja los clics en el indicador del modelo de Machine Learning (ML).
Convierte una cadena de calidad de datos a su valor enum correspondiente.
Convierte una cadena de nivel de estrés a su valor enum correspondiente.
Recarga el modelo de Machine Learning (ML).
Verifica si se debe mostrar una alerta de estrés térmico.
Verifica si se debe mostrar una alerta de HRV en la UI.
Determina si se debe mostrar una alerta de ML basada en la predicción actual.
Alterna el estado del modo de emergencia.