diff --git a/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs b/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs index 1da8524ebe3eb93ab1dcbba938cb3d06e99abeb9..14e2db5d89cb2e36c9f17e61f6ebab131cb00664 100644 --- a/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs +++ b/BeSafePlus/ViewModels/ActivityHistoryViewModel.cs @@ -74,9 +74,9 @@ namespace BeSafePlus.ViewModels } } } - private void UpdateSteps(int steps) + private async void UpdateSteps(int steps) { - MainThread.BeginInvokeOnMainThread(() => + await MainThread.InvokeOnMainThreadAsync(async () => { AccumulatedSteps = steps; @@ -101,15 +101,7 @@ namespace BeSafePlus.ViewModels TotalStepsThisWeek = WeeklyStepData.Sum(data => data.Steps); - Task.Run(async () => - { - await LoadMonthlySteps(); - - MainThread.BeginInvokeOnMainThread(() => - { - OnPropertyChanged(nameof(TotalStepsThisMonth)); - }); - }); + await LoadMonthlySteps(); OnPropertyChanged(nameof(WeeklyStepData)); @@ -146,7 +138,13 @@ namespace BeSafePlus.ViewModels public int TotalStepsThisMonth { get => _totalStepsThisMonth; - set => SetProperty(ref _totalStepsThisMonth, value); + set + { + if (SetProperty(ref _totalStepsThisMonth, value)) + { + OnPropertyChanged(nameof(TotalStepsThisMonth)); + } + } } public string WeekLabel => GetWeekLabel(); public string MonthLabel => GetMonthLabel(); diff --git a/BeSafePlus/Views/ActivityHistoryPage.xaml.cs b/BeSafePlus/Views/ActivityHistoryPage.xaml.cs index e9cd98cae4b0d6fccacbee9dacde99c2ce12f916..a6be905c0e4eadcc8527887faa5de4b7d9a11d69 100644 --- a/BeSafePlus/Views/ActivityHistoryPage.xaml.cs +++ b/BeSafePlus/Views/ActivityHistoryPage.xaml.cs @@ -40,13 +40,17 @@ namespace BeSafePlus { base.OnAppearing(); - await _viewModel.LoadStepGoal(); + var loadStepGoalTask = _viewModel.LoadStepGoal(); - await _viewModel.LoadWeeklySteps(); + var loadWeeklyStepsTask = _viewModel.LoadWeeklySteps(); - await _viewModel.LoadMonthlySteps(); + var loadMonthlyStepsTask = _viewModel.LoadMonthlySteps(); - _viewModel.AccumulatedSteps = await _viewModel.GetStepCount(); + var getStepCountTask = _viewModel.GetStepCount(); + + await Task.WhenAll(loadStepGoalTask, loadWeeklyStepsTask, loadMonthlyStepsTask, getStepCountTask); + + _viewModel.AccumulatedSteps = await getStepCountTask; LoadChart();