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 (2)
......@@ -22,7 +22,7 @@ namespace BeSafePlus.Platforms.Android.AndroidSensor
private bool _isFirstReading = true; // true on first load
public event Action? ResetStepCountEvent;
public event Func<Task>? ResetStepCountEvent;
public event Action<int, DateTime>? StepCounterChangeEvent;
......@@ -48,6 +48,8 @@ namespace BeSafePlus.Platforms.Android.AndroidSensor
_sensorManager?.RegisterListener(this, _stepSensor, SensorDelay.Ui);
_sensorManager?.RegisterListener(this, _accelerometerSensor, SensorDelay.Normal);
Log.Info("ActivityTrackingSensor", "Sensors registered sucessfully");
return;
}
......@@ -115,9 +117,12 @@ namespace BeSafePlus.Platforms.Android.AndroidSensor
AccelerometerChangeEvent?.Invoke(values[0], values[1], values[2], DateTime.Now);
}
}
public void ResetDailySteps()
public async Task ResetDailySteps()
{
ResetStepCountEvent?.Invoke();
if (ResetStepCountEvent != null)
{
await ResetStepCountEvent.Invoke();
}
}
}
}
\ No newline at end of file
......@@ -101,9 +101,9 @@ namespace BeSafePlus.Platforms.Android.AndroidSensor
{
_activityTrackingSensor?.Start();
_scheduleService?.ScheduleAlarm<MidnightResetReceiver>(AndroidRequestCodes.MidnightReset, TimeExtensions.GetTimeUntilMidnight());
_scheduleService?.ScheduleAlarm<HealthCheckReceiver>(AndroidRequestCodes.HealthCheck, TimeSpan.FromHours(2));
_scheduleService?.ScheduleAlarm<MidnightReportReceiver>(AndroidRequestCodes.MidnightReport, TimeExtensions.GetTimeUntilMidnight() /*TimeSpan.FromSeconds(5)*/);
_scheduleService?.ScheduleAlarm<MidnightResetReceiver>(AndroidRequestCodes.MidnightReset, TimeExtensions.GetTimeUntilMidnight() /*TimeSpan.FromSeconds(5)*/);
//_scheduleService?.ScheduleAlarm<HealthCheckReceiver>(AndroidRequestCodes.HealthCheck, TimeSpan.FromSeconds(5));
_scheduleService?.ScheduleAlarm<MidnightReportReceiver>(AndroidRequestCodes.MidnightReport, TimeExtensions.GetTimeUntilMidnight()+TimeSpan.FromMinutes(10) /*TimeSpan.FromSeconds(5)*/);
IsRunning = true;
}
......
......@@ -35,6 +35,8 @@ namespace BeSafePlus.Platforms.Android.CustomBroadcastReceivers
{
var serviceIntent = new Intent(context, typeof(ActivityTrackingService));
context.StartForegroundService(serviceIntent);
Log.Warn("ServiceHealthCheck", "ActivityTrackingService started sucessfully");
}
}
else
......
......@@ -10,9 +10,25 @@ namespace BeSafePlus.Platforms.Android.CustomBroadcastReceivers
{
public override void OnReceive(Context? context, Intent? intent)
{
ResetDailySteps();
var pendingResult = GoAsync();
Task.Run(async () =>
{
try
{
await ResetDailySteps();
}
catch (Exception ex)
{
Log.Error("MidnightResetReceiver", $"Exception during ResetDailySteps: {ex.Message}");
}
finally
{
pendingResult?.Finish();
}
});
}
private static void ResetDailySteps()
private static async Task ResetDailySteps()
{
var serviceProvider = IPlatformApplication.Current?.Services;
......@@ -22,7 +38,7 @@ namespace BeSafePlus.Platforms.Android.CustomBroadcastReceivers
if (activityTrackingSensor != null && scheduleService != null)
{
activityTrackingSensor.ResetDailySteps();
await activityTrackingSensor.ResetDailySteps();
scheduleService.ScheduleAlarm<MidnightResetReceiver>(AndroidRequestCodes.MidnightReset, TimeExtensions.GetTimeUntilMidnight());
......
......@@ -42,13 +42,13 @@ namespace BeSafePlus.Platforms.Android.Workers
{
if (reportService != null && scheduleService != null)
{
reportService.WriteAndSendReport().Wait(); // block til finished
reportService.WriteAndSendReport().GetAwaiter().GetResult();
stopwatch.Stop();
Log.Info("BeSafeReportWorker", $"Report was written and send to database. Elapsed: {stopwatch.ElapsedMilliseconds}. Attempt: {RunAttemptCount}");
scheduleService.ScheduleAlarm<MidnightReportReceiver>(AndroidRequestCodes.MidnightReport, TimeExtensions.GetTimeUntilMidnight());
scheduleService.ScheduleAlarm<MidnightReportReceiver>(AndroidRequestCodes.MidnightReport, TimeExtensions.GetTimeUntilMidnight()+ TimeSpan.FromMinutes(5));
return Result.InvokeSuccess();
}
......
......@@ -12,9 +12,9 @@ namespace BeSafePlus.Sensors
public event Action<float, float, float, DateTime>? AccelerometerChangeEvent;
public event Action? ResetStepCountEvent;
public event Func<Task>? ResetStepCountEvent;
public void Start();
public void Stop();
public void ResetDailySteps();
public Task ResetDailySteps();
}
}
\ No newline at end of file
......@@ -76,12 +76,15 @@ namespace BeSafePlus.Sensors
DailySteps += stepCount?.Steps ?? 0;
SendDailyStepUpdate();
}
private void OnResetDailySteps()
private async Task OnResetDailySteps()
{
DailySteps = 0;
SendDailyStepUpdate();
_db.CreateOrUpdateStepCount(DailySteps).Wait();
LastSaveTimeStamp = DateTime.Now;
if (_db != null)
{
await _db.CreateOrUpdateStepCount(DailySteps);
LastSaveTimeStamp = DateTime.Now;
}
}
#endregion
......