private HKWorkoutActivityType Convert(WorkoutDataType workoutDataType) { return(workoutDataType switch { WorkoutDataType.Biking => HKWorkoutActivityType.Cycling, WorkoutDataType.Running => HKWorkoutActivityType.Running, WorkoutDataType.Yoga => HKWorkoutActivityType.Yoga, WorkoutDataType.FunctionalStrengthTraining => HKWorkoutActivityType.FunctionalStrengthTraining, WorkoutDataType.TraditionalStrengthTraining => HKWorkoutActivityType.TraditionalStrengthTraining, WorkoutDataType.CoreTraining => HKWorkoutActivityType.CoreTraining, WorkoutDataType.Flexibility => HKWorkoutActivityType.Flexibility, WorkoutDataType.HighIntensityIntervalTraining => HKWorkoutActivityType.HighIntensityIntervalTraining, WorkoutDataType.MindAndBody => HKWorkoutActivityType.MindAndBody, _ => throw new NotSupportedException(), });
/* * public async Task<bool> SaveBmi(double value, DateTime start, DateTime? end) * { * return await WriteAsync(HealthDataType.iOS_BodyMassIndex, value, start, end); * } * * public async Task<bool> SaveMindfulSession(int value, DateTime start, DateTime? end) * { * return await WriteAsync(HealthDataType.MindfulSession, value, start, end); * } * * public async Task<bool> SaveHeight(double value, DateTime start, DateTime? end) * { * return await WriteAsync(HealthDataType.Height, value, start, end); * } * * public async Task<bool> SaveWeight(double value, DateTime start, DateTime? end) * { * return await WriteAsync(HealthDataType.Weight, value, start, end); * } * * public async Task<bool> SaveStep(int value, DateTime start, DateTime? end) * { * return await WriteAsync(HealthDataType.StepCount, value, start, end); * } * * public async Task<bool> SaveSleepAnalysis(HKCategoryValueSleepAnalysis value, DateTime start, DateTime end) * { * return await WriteAsync(HealthDataType.SleepAnalysis, (int)value, start, end); * } */ public override async Task <bool> WriteAsync(WorkoutDataType workoutDataType, double calories, DateTime start, DateTime?end = null, string name = null) { var totalEnergyBurned = HKQuantity.FromQuantity(HKUnit.CreateJouleUnit(HKMetricPrefix.Kilo), 20); var metadata = new HKMetadata(); if (name != null) { metadata.WorkoutBrandName = name; } var workout = HKWorkout.Create(Convert(workoutDataType), (NSDate)start, (NSDate)end, new HKWorkoutEvent[] { }, totalEnergyBurned, null, metadata); var(success, error) = await _healthStore.SaveObjectAsync(workout); return(success); }
public abstract Task <bool> WriteAsync(WorkoutDataType workoutDataType, double calories, DateTime start, DateTime?end = null, string name = null);