public override void ViewDidLoad() { base.ViewDidLoad(); LoadTimerUserDefaults(); if (Running) { StartButton.SetImage(Resources.StopButton, UIControlState.Normal); clockTimer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(1), UpdateTimerDisplay); } else { StartButton.SetImage(Resources.StartButton, UIControlState.Normal); } StartButton.TouchUpInside += delegate { if (Running) { Running = false; SetTimerUserDefaults(); TimeSpan elapsedTime = DateTime.Now - StartDate; int totalSeconds = (int)Math.Truncate(elapsedTime.TotalSeconds); TripLog.StopTripItem(totalSeconds); ClearNotifications(); StartButton.SetImage(Resources.StartButton, UIControlState.Normal); //StartButton.SetTitle("Start", UIControlState.Normal); clockTimer.Invalidate(); clockTimer = null; //CostLabel.Text = "£0.00"; //ElapsedLabel.Text = "0h 00m"; PriceIncreaseLabel.Text = "0m"; StartedLabel.Text = "00:00"; Analytics.TrackEvent(Analytics.CATEGORY_ACTION, Analytics.ACTION_TIMER_STOP, "", 1); Analytics.Dispatch(); //BackgroundLocationManager.Instance.StopLocationManager(); } else { StartDate = DateTime.Now; Running = true; TripLog.StartNewTripItem(); SetNotification(StartDate.AddMinutes(30)); SetTimerUserDefaults(); StartButton.SetImage(Resources.StopButton, UIControlState.Normal); //StartButton.SetTitle("Stop", UIControlState.Normal); UpdateTimerDisplay(); clockTimer = NSTimer.CreateRepeatingScheduledTimer(TimeSpan.FromSeconds(1), UpdateTimerDisplay); //BackgroundLocationManager.Instance.StartLocationManager(); Analytics.TrackPageView("/timerstart"); Analytics.TrackEvent(Analytics.CATEGORY_ACTION, Analytics.ACTION_TIMER_START, "", 1); Analytics.Dispatch(); } }; }