Exemplo n.º 1
0
        private void ListItemClicked(int position)
        {
            //this way we don't load twice, but you might want to modify this a bit.
            if (position == oldPosition)
            {
                return;
            }

            oldPosition = position;

            Android.Support.V4.App.Fragment fragment = null;
            switch (position)
            {
            case 0:
                fragment = HomeFragment.NewInstance();
                break;

            case 1:
                fragment = LocationsFragment.NewInstance();
                break;

            case 2:
                fragment = AddItemBarcodeFragment.NewInstance();
                break;

            case 3:
                fragment = StoragesFragment.NewInstance();
                break;

            case 4:
                fragment = CategoriesFragment.NewInstance();
                break;

            case 5:
                fragment = ProductsFragment.NewInstance();
                break;

            case 6:
                fragment = ShopListFragment.NewInstance();
                break;

            case 7:
                fragment = SummaryFragment.NewInstance();
                break;
            }

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .Commit();
        }
        /// <summary>
        /// Sets the child fragment for when each navigation item is selected
        /// </summary>
        private void SetFrameFragment(int index)
        {
            assignment = assignmentViewModel.SelectedAssignment;
            //var transaction = FragmentManager.BeginTransaction ();
            var screen = Constants.Navigation [index];

            switch (screen)
            {
            case "Summary": {
                var fragment = new SummaryFragment();
                fragment.Assignment = assignment;
//                        transaction.SetTransition (FragmentTransit.FragmentOpen);
//                        transaction.Replace (Resource.Id.contentFrame, fragment);
//                        transaction.Commit ();
                items.Visibility        =
                    addItems.Visibility = ViewStates.Invisible;
                addExpense.Visibility   =
                    addLabor.Visibility = ViewStates.Gone;
            }
            break;

            case "Map": {
                var fragment = new MapFragment();
//                        transaction.SetTransition (FragmentTransit.FragmentOpen);
//                        transaction.Replace (Resource.Id.contentFrame, fragment);
//                        transaction.Commit ();
                items.Visibility        =
                    addItems.Visibility = ViewStates.Invisible;
                addExpense.Visibility   =
                    addLabor.Visibility = ViewStates.Gone;
            }
            break;

            case "Items": {
                var fragment = new ItemFragment();
                fragment.Assignment = assignment;
                itemViewModel.LoadAssignmentItemsAsync(assignment).ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.AssignmentItems = itemViewModel.AssignmentItems;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            items.Visibility        =
                                addItems.Visibility = ViewStates.Visible;
                            addExpense.Visibility   =
                                addLabor.Visibility = ViewStates.Gone;
                            items.Text = string.Format("({0}) Items", assignment.TotalItems.ToString());
                        });
                    });
            }
            break;

            case "Labor Hours": {
                var fragment = new LaborHourFragment();
                laborViewModel.LoadLaborHoursAsync(assignment).ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.LaborHours = laborViewModel.LaborHours;
                            fragment.Assignment = assignment;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            addLabor.Visibility     =
                                items.Visibility    = ViewStates.Visible;
                            addExpense.Visibility   =
                                addItems.Visibility = ViewStates.Gone;
                            items.Text = string.Format("{0} hrs", assignment.TotalHours.TotalHours.ToString("0.0"));
                        });
                    });
            }
            break;

            case "Confirmations": {
                var fragment = new ConfirmationFragment();
                photoViewModel.LoadPhotosAsync(assignment).ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.Photos     = photoViewModel.Photos;
                            fragment.Assignment = assignment;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            addLabor.Visibility     =
                                items.Visibility    = ViewStates.Invisible;
                            addExpense.Visibility   =
                                addItems.Visibility = ViewStates.Gone;
                        });
                    });
            }
            break;

            case "Expenses": {
                var fragment = new ExpenseFragment();
                expenseViewModel.LoadExpensesAsync(assignment).ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.Expenses   = expenseViewModel.Expenses;
                            fragment.Assignment = assignment;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            addLabor.Visibility       =
                                addItems.Visibility   = ViewStates.Gone;
                            items.Visibility          =
                                addExpense.Visibility = ViewStates.Visible;
                            items.Text = assignment.TotalExpenses.ToString("$0.00");
                        });
                    });
            }
            break;

            case "Documents": {
                var fragment = new DocumentFragment();
                documentViewModel.LoadDocumentsAsync().ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.Documents = documentViewModel.Documents;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            items.Visibility        =
                                addItems.Visibility = ViewStates.Invisible;
                            addExpense.Visibility   =
                                addLabor.Visibility = ViewStates.Gone;
                        });
                    });
            }
            break;

            case "History": {
                var fragment = new HistoryFragment();
                historyViewModel.LoadHistoryAsync(assignment).ContinueWith(_ => {
                        RunOnUiThread(() => {
                            fragment.History    = historyViewModel.History;
                            fragment.Assignment = assignment;
//                                transaction.SetTransition (FragmentTransit.FragmentOpen);
//                                transaction.Replace (Resource.Id.contentFrame, fragment);
//                                transaction.Commit ();
                            items.Visibility        =
                                addItems.Visibility = ViewStates.Invisible;
                            addExpense.Visibility   =
                                addLabor.Visibility = ViewStates.Gone;
                        });
                    });
            }
            break;

            default:
                break;
            }
        }