コード例 #1
0
 public void DidChangeToState(HKWorkoutSession workoutSession, HKWorkoutSessionState toState, HKWorkoutSessionState fromState, NSDate date)
 {
     DispatchQueue.MainQueue.DispatchAsync(() =>
     {
         this.HandleWorkoutSessionState(toState, fromState);
     });
 }
コード例 #2
0
        private void HandleWorkoutSessionState(HKWorkoutSessionState toState, HKWorkoutSessionState fromState)
        {
            if (fromState == HKWorkoutSessionState.NotStarted && toState == HKWorkoutSessionState.Running)
            {
                this.startDate = new NSDate();
                this.StartTimer();
                this.StartAccumulatingData();
            }
            else if (toState == HKWorkoutSessionState.Ended)
            {
                this.StopAccumulatingData();
                this.endDate = new NSDate();
                this.StopTimer();
                this.healthStoreManager.SaveWorkout(workoutSession, this.startDate, this.endDate);
            }

            this.UpdateLabels();
            this.UpdateStates();
        }
コード例 #3
0
        public void DidChangeToState(HKWorkoutSession workoutSession, HKWorkoutSessionState toState, HKWorkoutSessionState fromState, NSDate date)
        {
            DispatchQueue.MainQueue.DispatchAsync(delegate {
                // Take action based on the change in state
                switch (toState)
                {
                case HKWorkoutSessionState.Running:
                    BeginWorkout((DateTime)date);
                    break;

                case HKWorkoutSessionState.Ended:
                    EndWorkout((DateTime)date);
                    break;

                default:
                    Console.WriteLine($"Unexpected workout session: {toState}.");
                    break;
                }
            });
        }
コード例 #4
0
        public override void DidChangeToState(HKWorkoutSession workoutSession, HKWorkoutSessionState toState, HKWorkoutSessionState fromState, NSDate date)
        {
            // Take action based on the change in state
            switch (toState)
            {
            case HKWorkoutSessionState.NotStarted:
                break;

            case HKWorkoutSessionState.Paused:
                RaisePaused();
                break;

            case HKWorkoutSessionState.Running:
                RaiseRunning();
                break;

            case HKWorkoutSessionState.Ended:
                RaiseEnded();
                break;
            }
        }
コード例 #5
0
		public void DidChangeToState (HKWorkoutSession workoutSession, HKWorkoutSessionState toState, HKWorkoutSessionState fromState, NSDate date)
		{
			DispatchQueue.MainQueue.DispatchAsync (delegate {
				// Take action based on the change in state
				switch (toState) {
					case HKWorkoutSessionState.Running:
						BeginWorkout ((DateTime)date);
						break;
					case HKWorkoutSessionState.Ended:
						EndWorkout ((DateTime)date);
						break;
					default:
						Console.WriteLine ($"Unexpected workout session: {toState}.");
						break;
				}
			});
		}