public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { if (!Enabled) { return; } var history = historyViewModel.History [indexPath.Row]; if (history.Type != AssignmentHistoryType.PhoneCall) { historyViewModel.LoadAssignmentFromHistory(history) .ContinueWith(_ => { BeginInvokeOnMainThread(() => { var parentController = controller.ParentViewController.ParentViewController; assignmentViewModel.LastAssignment = assignmentViewModel.SelectedAssignment; assignmentViewModel.SelectedAssignment = historyViewModel.PastAssignment; parentController.PerformSegue("AssignmentHistory", parentController); }); }); //Deselect the cell, a bug in Apple's UITableView requires BeginInvoke BeginInvokeOnMainThread(() => { var cell = tableView.CellAt(indexPath); cell.SetSelected(false, true); }); } }
/// <summary> /// History list view item click /// </summary> private async void OnItemClick(object sender, ItemClickEventArgs e) { var history = e.ClickedItem as AssignmentHistory; if (history != null) { await historyViewModel.LoadAssignmentFromHistory(history); if (!assignmentViewModel.SelectedAssignment.IsHistory) { assignmentViewModel.PreviousSelected = assignmentViewModel.SelectedAssignment; } assignmentViewModel.SelectedAssignment = historyViewModel.PastAssignment; Helpers.NavigateTo <AssignmentPage> (); } }
protected override async void OnCreate(Bundle bundle) { base.OnCreate(bundle); Window.RequestFeature(WindowFeatures.ActionBar); SetContentView(Resource.Layout.SummaryFragmentLayout); number = FindViewById <TextView> (Resource.Id.selectedAssignmentNumber); name = FindViewById <TextView> (Resource.Id.selectedAssignmentContactName); phone = FindViewById <TextView> (Resource.Id.selectedAssignmentPhoneNumber); address = FindViewById <TextView> (Resource.Id.selectedAssignmentAddress); items = FindViewById <TextView> (Resource.Id.selectedAssignmentTotalItems); addItems = FindViewById <Button> (Resource.Id.selectedAssignmentAddItem); addLabor = FindViewById <Button> (Resource.Id.selectedAssignmentAddLabor); addExpense = FindViewById <Button> (Resource.Id.selectedAssignmentAddExpense); navigationFragmentContainer = FindViewById <FrameLayout> (Resource.Id.navigationFragmentContainer); mapButton = FindViewById <LinearLayout> (Resource.Id.summaryMapIconLayout); phoneButton = FindViewById <LinearLayout> (Resource.Id.summaryPhoneIconLayout); selectedAssignmentLayout = FindViewById <LinearLayout> (Resource.Id.selectedAssignment); phoneButton.Click += (sender, e) => { AndroidExtensions.MakePhoneCall(this, phone.Text); }; mapButton.Click += (sender, e) => { var navFragment = FragmentManager.FindFragmentById <NavigationFragment> (Resource.Id.navigationFragmentContainer); var index = Constants.HistoryNavigation.IndexOf("Map"); navFragment.SetNavigation(index); }; selectedAssignmentLayout.SetBackgroundColor(Resources.GetColor(Resource.Color.historycolor)); await historyViewModel.LoadAssignmentFromHistory(assignmentHistory); RunOnUiThread(() => { //setting up default fragments var transaction = FragmentManager.BeginTransaction(); navigationFragment = new NavigationFragment(); navigationFragment.Assignment = historyViewModel.PastAssignment; transaction.SetTransition(FragmentTransit.FragmentOpen); transaction.Replace(Resource.Id.navigationFragmentContainer, navigationFragment); transaction.Commit(); if (historyViewModel.PastAssignment != null) { ActionBar.Title = string.Format("#{0} {1} {2}", assignmentHistory.JobNumber, "Summary", historyViewModel.PastAssignment.StartDate.ToShortDateString()); number.Text = historyViewModel.PastAssignment.Priority.ToString(); name.Text = assignmentHistory.ContactName; phone.Text = assignmentHistory.ContactPhone; address.Text = string.Format("{0}\n{1}, {2} {3}", assignmentHistory.Address, assignmentHistory.City, assignmentHistory.State, assignmentHistory.Zip); } navigationFragment.NavigationSelected += NavigationSelected; }); items.Visibility = addItems.Visibility = ViewStates.Invisible; addLabor.Visibility = ViewStates.Gone; ActionBar.SetLogo(Resource.Drawable.XamarinTitle); ActionBar.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.actionbar)); ActionBar.SetDisplayHomeAsUpEnabled(true); }