Commit dd643582 authored by Evgenii Evstropov's avatar Evgenii Evstropov

extended support for workouts

parent 22894714
...@@ -133,24 +133,23 @@ ...@@ -133,24 +133,23 @@
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
if (type == [HKObjectType workoutType]) { if (type == [HKObjectType workoutType]) {
for (HKWorkout *sample in results) { for (HKWorkout *sample in results) {
HKQuantity *quantity = sample.quantity; double energy = [[sample totalEnergyBurned] doubleValueForUnit:[HKUnit kilocalorieUnit]];
double value = [quantity doubleValueForUnit:unit]; double distance = [[sample totalDistance] doubleValueForUnit:[HKUnit mileUnit]];
NSString *type = [RCTAppleHealthKit stringForHKWorkoutActivityType:[sample workoutActivityType]];
NSString *startDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.startDate]; NSString *startDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.startDate];
NSString *endDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.endDate]; NSString *endDateString = [RCTAppleHealthKit buildISO8601StringFromDate:sample.endDate];
NSDictionary *elem = @{ NSDictionary *elem = @{
@"value" : @(value), @"type" : type,
@"energy" : @(energy),
@"distance" : @(distance),
@"startDate" : startDateString, @"startDate" : startDateString,
@"endDate" : endDateString, @"endDate" : endDateString,
paramName : @(param), paramName : @(param),
}; };
[data addObject:elem]; [data addObject:elem];
NSLog(@"%lu", (unsigned long)[sample workoutActivityType]);
NSLog(@"energy burned %f", [[sample totalEnergyBurned] doubleValueForUnit:[HKUnit kilocalorieUnit]]);
NSLog(@"total distance %f", [[sample totalDistance] doubleValueForUnit:[HKUnit mileUnit]]);
} }
} else { } else {
for (HKQuantitySample *sample in results) { for (HKQuantitySample *sample in results) {
......
...@@ -32,5 +32,6 @@ ...@@ -32,5 +32,6 @@
+ (bool)boolFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(bool)defaultValue; + (bool)boolFromOptions:(NSDictionary *)options key:(NSString *)key withDefault:(bool)defaultValue;
+ (NSMutableArray *)reverseNSMutableArray:(NSMutableArray *)array; + (NSMutableArray *)reverseNSMutableArray:(NSMutableArray *)array;
+ (NSString*) stringForHKWorkoutActivityType:(int) enumValue;
@end @end
...@@ -320,4 +320,132 @@ ...@@ -320,4 +320,132 @@
return array; return array;
} }
+ (NSString*)stringForHKWorkoutActivityType:(int) enumValue{
switch( enumValue ){
case HKWorkoutActivityTypeAmericanFootball:
return @"AmericanFootball";
case HKWorkoutActivityTypeArchery:
return @"Archery";
case HKWorkoutActivityTypeAustralianFootball:
return @"AustralianFootball";
case HKWorkoutActivityTypeBadminton:
return @"Badminton";
case HKWorkoutActivityTypeBaseball:
return @"Baseball";
case HKWorkoutActivityTypeBasketball:
return @"Basketball";
case HKWorkoutActivityTypeBowling:
return @"Bowling";
case HKWorkoutActivityTypeBoxing:
return @"Boxing";
case HKWorkoutActivityTypeClimbing:
return @"Climbing";
case HKWorkoutActivityTypeCricket:
return @"Cricket";
case HKWorkoutActivityTypeCrossTraining:
return @"CrossTraining";
case HKWorkoutActivityTypeCurling:
return @"Curling";
case HKWorkoutActivityTypeCycling:
return @"Cycling";
case HKWorkoutActivityTypeDance:
return @"Dance";
case HKWorkoutActivityTypeDanceInspiredTraining:
return @"DanceInspiredTraining";
case HKWorkoutActivityTypeElliptical:
return @"Elliptical";
case HKWorkoutActivityTypeEquestrianSports:
return @"EquestrianSports";
case HKWorkoutActivityTypeFencing:
return @"Fencing";
case HKWorkoutActivityTypeFishing:
return @"Fishing";
case HKWorkoutActivityTypeFunctionalStrengthTraining:
return @"FunctionalStrengthTraining";
case HKWorkoutActivityTypeGolf:
return @"Golf";
case HKWorkoutActivityTypeGymnastics:
return @"Gymnastics";
case HKWorkoutActivityTypeHandball:
return @"Handball";
case HKWorkoutActivityTypeHiking:
return @"Hiking";
case HKWorkoutActivityTypeHockey:
return @"Hockey";
case HKWorkoutActivityTypeHunting:
return @"Hunting";
case HKWorkoutActivityTypeLacrosse:
return @"Lacrosse";
case HKWorkoutActivityTypeMartialArts:
return @"MartialArts";
case HKWorkoutActivityTypeMindAndBody:
return @"MindAndBody";
case HKWorkoutActivityTypeMixedMetabolicCardioTraining:
return @"MixedMetabolicCardioTraining";
case HKWorkoutActivityTypePaddleSports:
return @"PaddleSports";
case HKWorkoutActivityTypePlay:
return @"Play";
case HKWorkoutActivityTypePreparationAndRecovery:
return @"PreparationAndRecovery";
case HKWorkoutActivityTypeRacquetball:
return @"Racquetball";
case HKWorkoutActivityTypeRowing:
return @"Rowing";
case HKWorkoutActivityTypeRugby:
return @"Rugby";
case HKWorkoutActivityTypeRunning:
return @"Running";
case HKWorkoutActivityTypeSailing:
return @"Sailing";
case HKWorkoutActivityTypeSkatingSports:
return @"SkatingSports";
case HKWorkoutActivityTypeSnowSports:
return @"SnowSports";
case HKWorkoutActivityTypeSoccer:
return @"Soccer";
case HKWorkoutActivityTypeSoftball:
return @"Softball";
case HKWorkoutActivityTypeSquash:
return @"Squash";
case HKWorkoutActivityTypeStairClimbing:
return @"StairClimbing";
case HKWorkoutActivityTypeSurfingSports:
return @"SurfingSports";
case HKWorkoutActivityTypeSwimming:
return @"Swimming";
case HKWorkoutActivityTypeTableTennis:
return @"TableTennis";
case HKWorkoutActivityTypeTennis:
return @"Tennis";
case HKWorkoutActivityTypeTrackAndField:
return @"TrackAndField";
case HKWorkoutActivityTypeTraditionalStrengthTraining:
return @"TraditionalStrengthTraining";
case HKWorkoutActivityTypeVolleyball:
return @"Volleyball";
case HKWorkoutActivityTypeWalking:
return @"Walking";
case HKWorkoutActivityTypeWaterFitness:
return @"WaterFitness";
case HKWorkoutActivityTypeWaterPolo:
return @"WaterPolo";
case HKWorkoutActivityTypeWaterSports:
return @"WaterSports";
case HKWorkoutActivityTypeWrestling:
return @"Wrestling";
case HKWorkoutActivityTypeYoga:
return @"Yoga";
case HKWorkoutActivityTypeOther:
return @"Other";
default:{
NSException *e = [NSException
exceptionWithName:@"HKWorkoutActivityType InvalidValue"
reason:@"HKWorkoutActivityType can only have a value from the HKWorkoutActivityType enum"
userInfo:nil];
@throw e;
}
}
}
@end @end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment