Example #1
0
 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(),
     });
Example #2
0
        /*
         * 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);
        }
Example #3
0
 public abstract Task <bool> WriteAsync(WorkoutDataType workoutDataType, double calories, DateTime start, DateTime?end = null, string name = null);