Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • au304578/besafeplus
1 result
Show changes
Commits on Source (5)
......@@ -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,21 +101,35 @@ namespace BeSafePlus.ViewModels
TotalStepsThisWeek = WeeklyStepData.Sum(data => data.Steps);
Task.Run(async () =>
var todayMonthlyEntry = MonthlyStepData.FirstOrDefault(data => DateTime.Parse(data.Date).Date == today);
if (todayMonthlyEntry == null)
{
await LoadMonthlySteps();
todayMonthlyEntry = new StepCount { Date = today.ToString("yyyy-MM-dd"), Steps = steps };
MonthlyStepData.Add(todayMonthlyEntry);
}
MainThread.BeginInvokeOnMainThread(() =>
{
OnPropertyChanged(nameof(TotalStepsThisMonth));
});
});
else
{
todayMonthlyEntry.Steps = steps;
}
var firstDayOfMonth = new DateTime(today.Year, today.Month, 1);
var lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddDays(-1);
TotalStepsThisMonth = MonthlyStepData
.Where(data => DateTime.Parse(data.Date) >= firstDayOfMonth && DateTime.Parse(data.Date) <= lastDayOfMonth)
.Sum(data => data.Steps);
OnPropertyChanged(nameof(WeeklyStepData));
OnPropertyChanged(nameof(TotalStepsThisWeek));
OnPropertyChanged(nameof(AccumulatedSteps));
OnPropertyChanged(nameof(TotalStepsThisMonth));
});
}
public void SetProgress(int steps)
......@@ -146,7 +160,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();
......@@ -221,16 +241,27 @@ namespace BeSafePlus.ViewModels
int totalSteps = 0;
var newMonthlyData = new List<StepCount>();
for (var date = firstDayOfMonth; date <= lastDayOfMonth; date = date.AddDays(1))
{
var stepData = await _database.GetStepCountByDate(date);
if (stepData != null)
{
newMonthlyData.Add(stepData);
totalSteps += stepData.Steps;
}
else
{
newMonthlyData.Add(new StepCount { Date = date.ToString("yyyy-MM-dd"), Steps = 0 });
}
}
MonthlyStepData = newMonthlyData;
TotalStepsThisMonth = totalSteps;
}
private string GetWeekLabel()
......
......@@ -40,13 +40,20 @@ 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);
if (_viewModel.AccumulatedSteps == 0)
{
_viewModel.AccumulatedSteps = await getStepCountTask;
}
LoadChart();
......