public TaskPage(int routineNum, bool isRoutine, GRItemModel _GRItemModel)
        {
            InitializeComponent();

            GRItemModel = _GRItemModel;

            taskGridViewModel = new TaskGridViewModel(this, routineNum, isRoutine, GRItemModel);
            BindingContext    = taskGridViewModel;
        }
        public TaskCompletePage(int a, int b, bool isRoutine, TaskItemModel _TaskItemModel, GRItemModel _GRItemModel)
        {
            InitializeComponent();
            firebaseFunctionsService = new FirebaseFunctionsService();

            GRItemModel    = _GRItemModel;
            TaskItemModel  = _TaskItemModel;
            this.a         = a;
            this.b         = b;
            this.isRoutine = isRoutine;
            pageModel      = new TaskCompletePageViewModel(this, a, b, isRoutine);
            BindingContext = pageModel;
            itemcount      = pageModel.count;
        }
Exemple #3
0
        public StepsPage(int a, int b, bool isRoutine, TaskItemModel _taskItemModel, GRItemModel _GRItemModel)
        {
            InitializeComponent();


            this.a                     = a;
            this.b                     = b;
            taskItemModel              = _taskItemModel;
            GRItemModel                = _GRItemModel;
            this.isRoutine             = isRoutine;
            pageModel                  = new StepsPageViewModel(this, a, b, isRoutine);
            BindingContext             = pageModel;
            itemcount                  = pageModel.count;
            StepListView.HeightRequest = GetListViewHeight();
        }
        public TaskGridViewModel(TaskPage mainPage, int a, bool isRoutine, GRItemModel _GRItemModel)
        {
            this.mainPage = mainPage;
            Items         = new ObservableCollection <TaskItemModel>();

            GRItemModel = _GRItemModel;

            if (isRoutine)
            {
                TopImage        = App.User.routines[a].photo;
                TopLabel        = App.User.routines[a].title;
                BackgroundColor = Color.WhiteSmoke;
                TitleTextColor  = Color.FromHex("#272E32");
                BackImage       = "arrowicon.png";

                //if(App.user.routines[a].audio != "") SoundButton = "waveicon.png";

                int taskIdx = 0;
                foreach (task task in App.User.routines[a].tasks)
                {
                    Items.Add(new TaskItemModel(

                                  App.User.routines[a].tasks[taskIdx].photo,
                                  App.User.routines[a].tasks[taskIdx].title,
                                  Color.FromHex("#272E32"),

                                  App.User.routines[a].tasks[taskIdx].isComplete,
                                  App.User.routines[a].tasks[taskIdx].isInProgress,
                                  new Command <int>(
                                      async(int _taskIdx) =>
                    {
                        string routineId      = App.User.routines[a].id;
                        string taskId         = App.User.routines[a].tasks[_taskIdx].id;
                        int taskDbIdx         = App.User.routines[a].tasks[_taskIdx].dbIdx;
                        bool isTaskInProgress = App.User.routines[a].tasks[_taskIdx].isInProgress;
                        bool isTaskComplete   = App.User.routines[a].tasks[_taskIdx].isComplete;

                        if (App.User.routines[a].tasks[_taskIdx].isSublistAvailable)
                        {
                            if (!isTaskComplete)
                            {
                                App.User.routines[a].tasks[_taskIdx].isInProgress = true;
                                Items[_taskIdx].IsInProgress = true;
                                firebaseFunctionsService.StartAT(routineId, taskId, taskDbIdx.ToString());
                            }
                            await mainPage.Navigation.PushAsync(new StepsPage(a, _taskIdx, isRoutine, Items[_taskIdx], GRItemModel));
                        }
                        else
                        {
                            if (!isTaskComplete)
                            {
                                if (isTaskInProgress)
                                {
                                    App.User.routines[a].tasks[_taskIdx].isInProgress = false;
                                    App.User.routines[a].tasks[_taskIdx].isComplete   = true;
                                    Items[_taskIdx].IsInProgress = false;
                                    Items[_taskIdx].IsComplete   = true;
                                    firebaseFunctionsService.UpdateTask(routineId, taskId, taskDbIdx.ToString());
                                }
                                else
                                {
                                    App.User.routines[a].tasks[_taskIdx].isInProgress = true;
                                    Items[_taskIdx].IsInProgress = true;
                                    firebaseFunctionsService.StartAT(routineId, taskId, taskDbIdx.ToString());
                                }
                            }
                        }
                    }),
                                  taskIdx
                                  ));
                    taskIdx++;
                }
            }
            else
            {
                TopImage        = App.User.goals[a].photo;
                TopLabel        = App.User.goals[a].title;
                BackgroundColor = Color.FromHex("#272E32");
                TitleTextColor  = Color.WhiteSmoke;
                BackImage       = "arrowiconwhite.png";

                int actionIdx = 0;
                foreach (action action in App.User.goals[a].actions)
                {
                    Items.Add(new TaskItemModel(

                                  App.User.goals[a].actions[actionIdx].photo,
                                  App.User.goals[a].actions[actionIdx].title,
                                  Color.WhiteSmoke,

                                  App.User.goals[a].actions[actionIdx].isComplete,
                                  App.User.goals[a].actions[actionIdx].isInProgress,
                                  new Command <int>(
                                      async(int _actionIdx) =>
                    {
                        string goalId           = App.User.goals[a].id;
                        string actionId         = App.User.goals[a].actions[_actionIdx].id;
                        int actionDbIdx         = App.User.goals[a].actions[_actionIdx].dbIdx;
                        bool isActionInProgress = App.User.goals[a].actions[_actionIdx].isInProgress;
                        bool isActionComplete   = App.User.goals[a].actions[_actionIdx].isComplete;

                        if (App.User.goals[a].actions[_actionIdx].isSublistAvailable)
                        {
                            if (!isActionComplete)
                            {
                                App.User.goals[a].actions[_actionIdx].isInProgress = true;
                                Items[_actionIdx].IsInProgress = true;
                                firebaseFunctionsService.StartAT(goalId, actionId, actionDbIdx.ToString());
                            }

                            await mainPage.Navigation.PushAsync(new TaskCompletePage(a, _actionIdx, isRoutine, Items[_actionIdx], GRItemModel));
                        }
                        else
                        {
                            if (!isActionComplete)
                            {
                                if (isActionInProgress)
                                {
                                    App.User.goals[a].actions[_actionIdx].isInProgress = false;
                                    App.User.goals[a].actions[_actionIdx].isComplete   = true;
                                    Items[_actionIdx].IsInProgress = false;
                                    Items[_actionIdx].IsComplete   = true;
                                    firebaseFunctionsService.UpdateTask(goalId, actionId, actionDbIdx.ToString());
                                }
                                else
                                {
                                    App.User.goals[a].actions[_actionIdx].isInProgress = true;
                                    Items[_actionIdx].IsInProgress = true;
                                    firebaseFunctionsService.StartAT(goalId, actionId, actionDbIdx.ToString());
                                }
                            }
                        }
                    }),
                                  actionIdx
                                  ));
                    actionIdx++;
                }
            }
        }