HumidityDataManager

Gestiona los datos de humedad mensual para los cálculos del índice de calor. Carga y proporciona datos de humedad promedio por mes desde un archivo JSON.

Este objeto es responsable de:

  • Cargar datos de humedad desde un archivo JSON (humedades.json) ubicado en la carpeta de assets.

  • Analizar los datos JSON para extraer la humedad relativa promedio para cada mes.

  • Proporcionar acceso a los datos de humedad para el mes actual o un mes específico.

  • Ofrecer valores de humedad predeterminados si la carga de datos falla o el gestor no está inicializado.

  • Generar estadísticas de humedad como el promedio anual, el mes más húmedo y el mes más seco.

Necesita ser inicializado usando el método initialize(context: Context) antes de su uso. Si no se inicializa, devolverá valores de humedad predeterminados.

Properties

Link copied to clipboard
private const val DEFAULT_HUMIDITY: Float = 50.0f
Link copied to clipboard
private const val HUMIDITY_DATA_FILE: String
Link copied to clipboard
private var isInitialized: Boolean
Link copied to clipboard
Link copied to clipboard
private const val TAG: String

Functions

Link copied to clipboard

Obtiene la humedad promedio para el mes actual.

Link copied to clipboard
fun getHumidityForMonth(monthIndex: Int): Float

Recupera la humedad promedio para un mes específico.

Link copied to clipboard

Obtiene estadísticas de humedad. Calcula y devuelve una cadena formateada con el promedio anual de humedad, el mes más húmedo y el mes más seco junto con sus valores de humedad, y la humedad del mes actual. Si los datos de humedad no se han inicializado, devuelve un mensaje indicando que los datos no están disponibles.

Link copied to clipboard
private fun getSpanishMonthName(monthIndex: Int): String

Convierte un índice de mes (de Calendar) a su nombre en español.

Link copied to clipboard
fun initialize(context: Context)

Inicializa el gestor cargando los datos de humedad desde assets

Link copied to clipboard
private fun loadJSONFromAsset(context: Context): String?

Carga el archivo JSON desde la carpeta de assets.

Link copied to clipboard
private fun parseHumidityData(jsonString: String)

Parsea la cadena JSON que contiene los datos de humedad. El JSON debe tener una estructura como: { "averageRelativeHumidityByMonth": { "Enero": 60.5, "Febrero": 55.2, ... } }

Link copied to clipboard
private fun useDefaultValues()

Establece valores de humedad por defecto para cada mes si la carga de datos falla. Esta función se llama como un mecanismo de respaldo para asegurar que la aplicación tenga algunos datos de humedad con los que trabajar, incluso si la fuente de datos principal no está disponible. Rellena el mapa monthlyHumidity con un valor de humedad por defecto para los doce meses.