From ddef76991e29e36c19911695e30e5c203ca0b43d Mon Sep 17 00:00:00 2001 From: ArekAras Date: Fri, 19 Jul 2024 18:21:28 +0200 Subject: [PATCH 1/2] feat(workout): add workout brand name to metadata --- RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m | 11 +++++++++-- index.d.ts | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m index c1c4f425..3cda9a95 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+Methods_Workout.m @@ -130,10 +130,17 @@ - (void)workout_save: (NSDictionary *)input callback: (RCTResponseSenderBlock)ca NSTimeInterval duration = [RCTAppleHealthKit doubleFromOptions:input key:@"duration" withDefault:(NSTimeInterval)0]; HKQuantity *totalEnergyBurned = [RCTAppleHealthKit hkQuantityFromOptions:input valueKey:@"energyBurned" unitKey:@"energyBurnedUnit"]; HKQuantity *totalDistance = [RCTAppleHealthKit hkQuantityFromOptions:input valueKey:@"distance" unitKey:@"distanceUnit"]; - + NSString *workoutBrandName = [RCTAppleHealthKit stringFromOptions:input key:@"workoutBrandName" withDefault:nil]; + + NSDictionary *metadata = nil; + if (workoutBrandName) { + metadata = @{ + HKMetadataKeyWorkoutBrandName: workoutBrandName + }; + } HKWorkout *workout = [ - HKWorkout workoutWithActivityType:type startDate:startDate endDate:endDate workoutEvents:nil totalEnergyBurned:totalEnergyBurned totalDistance:totalDistance metadata: nil + HKWorkout workoutWithActivityType:type startDate:startDate endDate:endDate workoutEvents:nil totalEnergyBurned:totalEnergyBurned totalDistance:totalDistance metadata: metadata ]; void (^completion)(BOOL success, NSError *error); diff --git a/index.d.ts b/index.d.ts index 0cf0e280..dafa1c15 100644 --- a/index.d.ts +++ b/index.d.ts @@ -592,6 +592,7 @@ declare module 'react-native-health' { export interface HealthActivityOptions extends Omit, 'value'> { type: HealthActivity + workoutBrandName?: string } export interface HealthObserverOptions { From 40d86fd5590541a82eefe10512fc71f7eec77bcd Mon Sep 17 00:00:00 2001 From: ArekAras Date: Fri, 19 Jul 2024 18:25:18 +0200 Subject: [PATCH 2/2] docs: update saveWorkout options --- docs/saveWorkout.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/saveWorkout.md b/docs/saveWorkout.md index fa236f55..6b400a9f 100644 --- a/docs/saveWorkout.md +++ b/docs/saveWorkout.md @@ -14,7 +14,8 @@ let options = { energyBurned: 50, // In Energy burned unit, energyBurnedUnit: 'calorie', distance: 50, // In Distance unit - distanceUnit: 'meter' + distanceUnit: 'meter', + workoutBrandName: "Afternoon Workout" } ```