RecordsTypeNameMap.kt

/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.health.connect.client.impl.converters.datatype

import androidx.health.connect.client.records.ActiveCaloriesBurned
import androidx.health.connect.client.records.ActiveEnergyBurned
import androidx.health.connect.client.records.ActivityEvent
import androidx.health.connect.client.records.ActivityLap
import androidx.health.connect.client.records.ActivitySession
import androidx.health.connect.client.records.BasalBodyTemperature
import androidx.health.connect.client.records.BasalMetabolicRate
import androidx.health.connect.client.records.BloodGlucose
import androidx.health.connect.client.records.BloodPressure
import androidx.health.connect.client.records.BodyFat
import androidx.health.connect.client.records.BodyTemperature
import androidx.health.connect.client.records.BodyWaterMass
import androidx.health.connect.client.records.BoneMass
import androidx.health.connect.client.records.CervicalMucus
import androidx.health.connect.client.records.CervicalPosition
import androidx.health.connect.client.records.CyclingPedalingCadenceSeries
import androidx.health.connect.client.records.Distance
import androidx.health.connect.client.records.ElevationGained
import androidx.health.connect.client.records.FloorsClimbed
import androidx.health.connect.client.records.HeartRateSeries
import androidx.health.connect.client.records.HeartRateVariabilityDifferentialIndex
import androidx.health.connect.client.records.HeartRateVariabilityRmssd
import androidx.health.connect.client.records.HeartRateVariabilityS
import androidx.health.connect.client.records.HeartRateVariabilitySd2
import androidx.health.connect.client.records.HeartRateVariabilitySdann
import androidx.health.connect.client.records.HeartRateVariabilitySdnn
import androidx.health.connect.client.records.HeartRateVariabilitySdnnIndex
import androidx.health.connect.client.records.HeartRateVariabilitySdsd
import androidx.health.connect.client.records.HeartRateVariabilityTinn
import androidx.health.connect.client.records.Height
import androidx.health.connect.client.records.HipCircumference
import androidx.health.connect.client.records.Hydration
import androidx.health.connect.client.records.LeanBodyMass
import androidx.health.connect.client.records.Menstruation
import androidx.health.connect.client.records.Nutrition
import androidx.health.connect.client.records.OvulationTest
import androidx.health.connect.client.records.OxygenSaturation
import androidx.health.connect.client.records.PowerSeries
import androidx.health.connect.client.records.Record
import androidx.health.connect.client.records.Repetitions
import androidx.health.connect.client.records.RespiratoryRate
import androidx.health.connect.client.records.RestingHeartRate
import androidx.health.connect.client.records.SexualActivity
import androidx.health.connect.client.records.SleepSession
import androidx.health.connect.client.records.SleepStage
import androidx.health.connect.client.records.SpeedSeries
import androidx.health.connect.client.records.Steps
import androidx.health.connect.client.records.StepsCadenceSeries
import androidx.health.connect.client.records.SwimmingStrokes
import androidx.health.connect.client.records.TotalCaloriesBurned
import androidx.health.connect.client.records.TotalEnergyBurned
import androidx.health.connect.client.records.Vo2Max
import androidx.health.connect.client.records.WaistCircumference
import androidx.health.connect.client.records.Weight
import androidx.health.connect.client.records.WheelchairPushes
import kotlin.reflect.KClass

private val ALL_RECORDS_TYPES =
    setOf(
        ActiveCaloriesBurned::class,
        ActiveEnergyBurned::class,
        ActivityEvent::class,
        ActivityLap::class,
        ActivitySession::class,
        BasalBodyTemperature::class,
        BasalMetabolicRate::class,
        BloodGlucose::class,
        BloodPressure::class,
        BodyFat::class,
        BodyTemperature::class,
        BodyWaterMass::class,
        BoneMass::class,
        CervicalMucus::class,
        CervicalPosition::class,
        CyclingPedalingCadenceSeries::class,
        Distance::class,
        ElevationGained::class,
        FloorsClimbed::class,
        HeartRateSeries::class,
        HeartRateVariabilityDifferentialIndex::class,
        HeartRateVariabilityRmssd::class,
        HeartRateVariabilityS::class,
        HeartRateVariabilitySd2::class,
        HeartRateVariabilitySdann::class,
        HeartRateVariabilitySdnn::class,
        HeartRateVariabilitySdnnIndex::class,
        HeartRateVariabilitySdsd::class,
        HeartRateVariabilityTinn::class,
        Height::class,
        HipCircumference::class,
        Hydration::class,
        LeanBodyMass::class,
        Menstruation::class,
        Nutrition::class,
        OvulationTest::class,
        OxygenSaturation::class,
        PowerSeries::class,
        Repetitions::class,
        RespiratoryRate::class,
        RestingHeartRate::class,
        SexualActivity::class,
        SleepSession::class,
        SleepStage::class,
        SpeedSeries::class,
        Steps::class,
        StepsCadenceSeries::class,
        SwimmingStrokes::class,
        TotalCaloriesBurned::class,
        TotalEnergyBurned::class,
        Vo2Max::class,
        WaistCircumference::class,
        WheelchairPushes::class,
        Weight::class,
    )

val RECORDS_TYPE_NAME_MAP: Map<String, KClass<out Record>> =
    ALL_RECORDS_TYPES.associateBy { it.simpleName!! }