• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.health.connect;
18 
19 import static com.android.healthfitness.flags.Flags.FLAG_ACTIVITY_INTENSITY;
20 import static com.android.healthfitness.flags.Flags.FLAG_MINDFULNESS;
21 
22 import android.annotation.FlaggedApi;
23 import android.annotation.IntDef;
24 import android.annotation.SystemApi;
25 import android.health.connect.datatypes.ActiveCaloriesBurnedRecord;
26 import android.health.connect.datatypes.BasalMetabolicRateRecord;
27 import android.health.connect.datatypes.DistanceRecord;
28 import android.health.connect.datatypes.ElevationGainedRecord;
29 import android.health.connect.datatypes.HeartRateRecord;
30 import android.health.connect.datatypes.MindfulnessSessionRecord;
31 import android.health.connect.datatypes.PowerRecord;
32 import android.health.connect.datatypes.Record;
33 import android.health.connect.datatypes.SpeedRecord;
34 import android.health.connect.datatypes.StepsRecord;
35 
36 import java.lang.annotation.Retention;
37 import java.lang.annotation.RetentionPolicy;
38 
39 /**
40  * Represents the permission category of a {@link Record}. A record can only belong to one and only
41  * one {@link HealthPermissionCategory}
42  *
43  * @hide
44  */
45 @SystemApi
46 public class HealthPermissionCategory {
47     public static final int UNKNOWN = 0;
48 
49     // ACTIVITY
50     /** Permission category for {@link ActiveCaloriesBurnedRecord} */
51     public static final int ACTIVE_CALORIES_BURNED = 1;
52 
53     /** Permission category for {@link android.health.connect.datatypes.ActivityIntensityRecord}. */
54     @FlaggedApi(FLAG_ACTIVITY_INTENSITY)
55     public static final int ACTIVITY_INTENSITY = 42;
56 
57     /** Permission category for {@link DistanceRecord} */
58     public static final int DISTANCE = 2;
59 
60     /** Permission category for {@link ElevationGainedRecord} */
61     public static final int ELEVATION_GAINED = 3;
62 
63     /**
64      * Permission category for {@link android.health.connect.datatypes.ExerciseSessionRecord} and
65      * {@link android.health.connect.datatypes.ExerciseLap}
66      */
67     public static final int EXERCISE = 4;
68 
69     /** Permission category for {FloorsClimbedRecord} */
70     public static final int FLOORS_CLIMBED = 5;
71 
72     /** Permission category for {@link StepsRecord} */
73     public static final int STEPS = 6;
74 
75     // BODY_MEASUREMENTS
76     /** Permission category for {@link BasalMetabolicRateRecord} */
77     public static final int BASAL_METABOLIC_RATE = 9;
78 
79     /** Permission category for {BodyFatRecord} */
80     public static final int BODY_FAT = 10;
81 
82     /** Permission category for {BodyWaterMassRecord} */
83     public static final int BODY_WATER_MASS = 11;
84 
85     /** Permission category for {BoneMassRecord} */
86     public static final int BONE_MASS = 12;
87 
88     /** Permission category for {HeightRecord} */
89     public static final int HEIGHT = 13;
90 
91     /** Permission category for {LeanBodyMassRecord} */
92     public static final int LEAN_BODY_MASS = 15;
93 
94     /** Permission category for {@link PowerRecord} */
95     public static final int POWER = 36;
96 
97     /** Permission category for {@link SpeedRecord} */
98     public static final int SPEED = 37;
99 
100     /** Permission category for {TotalCaloriesBurnedRecord} */
101     public static final int TOTAL_CALORIES_BURNED = 35;
102 
103     /** Permission category for {Vo2MaxRecord} */
104     public static final int VO2_MAX = 7;
105 
106     /** Permission category for {WeightRecord} */
107     public static final int WEIGHT = 17;
108 
109     /** Permission category for {WheelChairPushesRecord} */
110     public static final int WHEELCHAIR_PUSHES = 8;
111 
112     // CYCLE_TRACKING
113     /** Permission category for {CervicalMucusRecord} */
114     public static final int CERVICAL_MUCUS = 18;
115 
116     /** Permission category for {IntermenstrualBleedingRecord} */
117     public static final int INTERMENSTRUAL_BLEEDING = 38;
118 
119     /** Permission category for {MenstruationRecord} */
120     public static final int MENSTRUATION = 20;
121 
122     /** Permission category for {OvulationTestRecord} */
123     public static final int OVULATION_TEST = 21;
124 
125     /** Permission category for {SexualActivityRecord} */
126     public static final int SEXUAL_ACTIVITY = 22;
127 
128     // NUTRITION
129     /** Permission category for {HydrationRecord} */
130     public static final int HYDRATION = 23;
131 
132     /** Permission category for {NutritionRecord} */
133     public static final int NUTRITION = 24;
134 
135     // SLEEP
136     /** Permission category for {BasalBodyTemperatureRecord} */
137     public static final int BASAL_BODY_TEMPERATURE = 33;
138 
139     /** Permission category for {SleepRecord} */
140     public static final int SLEEP = 25;
141 
142     // VITALS
143     /** Permission category for {BloodGlucose} */
144     public static final int BLOOD_GLUCOSE = 26;
145 
146     /** Permission category for {BloodPressure} */
147     public static final int BLOOD_PRESSURE = 27;
148 
149     /** Permission category for {BodyTemperature} */
150     public static final int BODY_TEMPERATURE = 28;
151 
152     /** Permission category for {@link HeartRateRecord} */
153     public static final int HEART_RATE = 29;
154 
155     /** Permission category for {HeartRateVariability} */
156     public static final int HEART_RATE_VARIABILITY = 30;
157 
158     /** Permission category for {OxygenSaturation} */
159     public static final int OXYGEN_SATURATION = 31;
160 
161     /** Permission category for {RespiratoryRate} */
162     public static final int RESPIRATORY_RATE = 32;
163 
164     /** Permission category for {RestingHeartRate} */
165     public static final int RESTING_HEART_RATE = 34;
166 
167     /** Permission category for {SkinTemperature} */
168     @FlaggedApi("com.android.healthconnect.flags.skin_temperature")
169     public static final int SKIN_TEMPERATURE = 39;
170 
171     /** Permission category for {PlannedExerciseSession} */
172     @FlaggedApi("com.android.healthconnect.flags.training_plans")
173     public static final int PLANNED_EXERCISE = 40;
174 
175     // WELLNESS
176     /** Permission category for {@link MindfulnessSessionRecord}. */
177     @FlaggedApi(FLAG_MINDFULNESS)
178     public static final int MINDFULNESS = 41;
179 
HealthPermissionCategory()180     private HealthPermissionCategory() {}
181 
182     /** @hide */
183     @IntDef({
184         UNKNOWN,
185         ACTIVE_CALORIES_BURNED,
186         ACTIVITY_INTENSITY,
187         DISTANCE,
188         ELEVATION_GAINED,
189         EXERCISE,
190         FLOORS_CLIMBED,
191         STEPS,
192         TOTAL_CALORIES_BURNED,
193         VO2_MAX,
194         WHEELCHAIR_PUSHES,
195         POWER,
196         SPEED,
197         BASAL_METABOLIC_RATE,
198         BODY_FAT,
199         BODY_WATER_MASS,
200         BONE_MASS,
201         HEIGHT,
202         LEAN_BODY_MASS,
203         WEIGHT,
204         CERVICAL_MUCUS,
205         MENSTRUATION,
206         OVULATION_TEST,
207         SEXUAL_ACTIVITY,
208         INTERMENSTRUAL_BLEEDING,
209         HYDRATION,
210         NUTRITION,
211         SLEEP,
212         BASAL_BODY_TEMPERATURE,
213         BLOOD_GLUCOSE,
214         BLOOD_PRESSURE,
215         BODY_TEMPERATURE,
216         HEART_RATE,
217         HEART_RATE_VARIABILITY,
218         OXYGEN_SATURATION,
219         RESPIRATORY_RATE,
220         RESTING_HEART_RATE,
221         SKIN_TEMPERATURE,
222         PLANNED_EXERCISE,
223         MINDFULNESS
224     })
225     @Retention(RetentionPolicy.SOURCE)
226     public @interface Type {}
227 }
228