private void OnNavigationBarRightClicked(object sender, EventArgs args) { var duration = TimeSpan.Zero; var entered = durationView.EnteredDuration; if (model == null || model.State == TimeEntryState.New) { duration = new TimeSpan(entered.Hours, entered.Minutes, 0); } else { duration = model.GetDuration(); // Keep the current seconds and milliseconds duration = new TimeSpan(0, entered.Hours, entered.Minutes, duration.Seconds, duration.Milliseconds); } if (model == null) { var m = TimeEntryModel.CreateFinished(duration); var controller = new EditTimeEntryViewController(m); // Replace self with edit controller on the stack var vcs = NavigationController.ViewControllers; vcs [vcs.Length - 1] = controller; NavigationController.SetViewControllers(vcs, true); } else { model.SetDuration(duration); NavigationController.PopViewControllerAnimated(true); } }
private async void OnNavigationBarRightClicked(object sender, EventArgs args) { if (isSaving) { return; } try { isSaving = true; var duration = TimeSpan.Zero; var entered = durationView.EnteredDuration; if (model == null || model.State == TimeEntryState.New) { duration = new TimeSpan(entered.Hours, entered.Minutes, 0); } else { duration = model.GetDuration(); // Keep the current seconds and milliseconds duration = new TimeSpan(0, entered.Hours, entered.Minutes, duration.Seconds, duration.Milliseconds); } if (model == null) { var m = await TimeEntryModel.CreateFinishedAsync(duration); var controller = new EditTimeEntryViewController(m); // Replace self with edit controller on the stack var vcs = NavigationController.ViewControllers; vcs [vcs.Length - 1] = controller; NavigationController.SetViewControllers(vcs, true); // Ping analytics ServiceContainer.Resolve <ITracker>().SendTimerStartEvent(TimerStartSource.AppManual); } else { model.SetDuration(duration); await model.SaveAsync(); NavigationController.PopViewController(true); } } finally { isSaving = false; } }
private async void OnNavigationBarRightClicked (object sender, EventArgs args) { if (isSaving) { return; } try { isSaving = true; var duration = TimeSpan.Zero; var entered = durationView.EnteredDuration; if (model == null || model.State == TimeEntryState.New) { duration = new TimeSpan (entered.Hours, entered.Minutes, 0); } else { duration = model.GetDuration (); // Keep the current seconds and milliseconds duration = new TimeSpan (0, entered.Hours, entered.Minutes, duration.Seconds, duration.Milliseconds); } if (model == null) { var m = await TimeEntryModel.CreateFinishedAsync (duration); var controller = new EditTimeEntryViewController (m); // Replace self with edit controller on the stack var vcs = NavigationController.ViewControllers; vcs [vcs.Length - 1] = controller; NavigationController.SetViewControllers (vcs, true); // Ping analytics ServiceContainer.Resolve<ITracker>().SendTimerStartEvent (TimerStartSource.AppManual); } else { model.SetDuration (duration); await model.SaveAsync (); NavigationController.PopViewController (true); } } finally { isSaving = false; } }
public async void ShowNewTimeEntryScreen (TimeEntryModel currentTimeEntry) { var topVCList = new List<UIViewController> (rootController.ChildViewControllers); if (topVCList.Count > 0) { // Get current VC's navigation var controllers = new List<UIViewController> (topVCList[0].NavigationController.ViewControllers); var tags = await ServiceContainer.Resolve<IDataStore> ().GetTimeEntryTags (currentTimeEntry.Data.Id); var editController = new EditTimeEntryViewController (currentTimeEntry.Data, tags); controllers.Add (editController); if (ServiceContainer.Resolve<SettingsStore> ().ChooseProjectForNew) { controllers.Add (new ProjectSelectionViewController (currentTimeEntry.Workspace.Id, editController)); } topVCList[0].NavigationController.SetViewControllers (controllers.ToArray (), true); } }
private void OnNavigationBarRightClicked (object sender, EventArgs args) { var duration = TimeSpan.Zero; var entered = durationView.EnteredDuration; if (model == null || model.State == TimeEntryState.New) { duration = new TimeSpan (entered.Hours, entered.Minutes, 0); } else { duration = model.GetDuration (); // Keep the current seconds and milliseconds duration = new TimeSpan (0, entered.Hours, entered.Minutes, duration.Seconds, duration.Milliseconds); } if (model == null) { var m = TimeEntryModel.CreateFinished (duration); var controller = new EditTimeEntryViewController (m); // Replace self with edit controller on the stack var vcs = NavigationController.ViewControllers; vcs [vcs.Length - 1] = controller; NavigationController.SetViewControllers (vcs, true); } else { model.SetDuration (duration); NavigationController.PopViewControllerAnimated (true); } }