@@ -404,7 +404,8 @@ namespace Pinetime {
404404 std::unique_ptr<WeatherData::Clouds>& WeatherService::GetCurrentClouds () {
405405 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
406406 for (auto && header : this ->timeline ) {
407- if (header->eventType == WeatherData::eventtype::Clouds && IsEventStillValid (header, currentTimestamp)) {
407+ if (header->eventType == WeatherData::eventtype::Clouds && currentTimestamp >= header->timestamp &&
408+ IsEventStillValid (header, currentTimestamp)) {
408409 return reinterpret_cast <std::unique_ptr<WeatherData::Clouds>&>(header);
409410 }
410411 }
@@ -415,7 +416,8 @@ namespace Pinetime {
415416 std::unique_ptr<WeatherData::Obscuration>& WeatherService::GetCurrentObscuration () {
416417 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
417418 for (auto && header : this ->timeline ) {
418- if (header->eventType == WeatherData::eventtype::Obscuration && IsEventStillValid (header, currentTimestamp)) {
419+ if (header->eventType == WeatherData::eventtype::Obscuration && currentTimestamp >= header->timestamp &&
420+ IsEventStillValid (header, currentTimestamp)) {
419421 return reinterpret_cast <std::unique_ptr<WeatherData::Obscuration>&>(header);
420422 }
421423 }
@@ -426,7 +428,8 @@ namespace Pinetime {
426428 std::unique_ptr<WeatherData::Precipitation>& WeatherService::GetCurrentPrecipitation () {
427429 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
428430 for (auto && header : this ->timeline ) {
429- if (header->eventType == WeatherData::eventtype::Precipitation && IsEventStillValid (header, currentTimestamp)) {
431+ if (header->eventType == WeatherData::eventtype::Precipitation && currentTimestamp >= header->timestamp &&
432+ IsEventStillValid (header, currentTimestamp)) {
430433 return reinterpret_cast <std::unique_ptr<WeatherData::Precipitation>&>(header);
431434 }
432435 }
@@ -437,7 +440,8 @@ namespace Pinetime {
437440 std::unique_ptr<WeatherData::Wind>& WeatherService::GetCurrentWind () {
438441 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
439442 for (auto && header : this ->timeline ) {
440- if (header->eventType == WeatherData::eventtype::Wind && IsEventStillValid (header, currentTimestamp)) {
443+ if (header->eventType == WeatherData::eventtype::Wind && currentTimestamp >= header->timestamp &&
444+ IsEventStillValid (header, currentTimestamp)) {
441445 return reinterpret_cast <std::unique_ptr<WeatherData::Wind>&>(header);
442446 }
443447 }
@@ -448,7 +452,8 @@ namespace Pinetime {
448452 std::unique_ptr<WeatherData::Temperature>& WeatherService::GetCurrentTemperature () {
449453 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
450454 for (auto && header : this ->timeline ) {
451- if (header->eventType == WeatherData::eventtype::Temperature && IsEventStillValid (header, currentTimestamp)) {
455+ if (header->eventType == WeatherData::eventtype::Temperature && currentTimestamp >= header->timestamp &&
456+ IsEventStillValid (header, currentTimestamp)) {
452457 return reinterpret_cast <std::unique_ptr<WeatherData::Temperature>&>(header);
453458 }
454459 }
@@ -459,7 +464,8 @@ namespace Pinetime {
459464 std::unique_ptr<WeatherData::Humidity>& WeatherService::GetCurrentHumidity () {
460465 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
461466 for (auto && header : this ->timeline ) {
462- if (header->eventType == WeatherData::eventtype::Humidity && IsEventStillValid (header, currentTimestamp)) {
467+ if (header->eventType == WeatherData::eventtype::Humidity && currentTimestamp >= header->timestamp &&
468+ IsEventStillValid (header, currentTimestamp)) {
463469 return reinterpret_cast <std::unique_ptr<WeatherData::Humidity>&>(header);
464470 }
465471 }
@@ -470,7 +476,8 @@ namespace Pinetime {
470476 std::unique_ptr<WeatherData::Pressure>& WeatherService::GetCurrentPressure () {
471477 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
472478 for (auto && header : this ->timeline ) {
473- if (header->eventType == WeatherData::eventtype::Pressure && IsEventStillValid (header, currentTimestamp)) {
479+ if (header->eventType == WeatherData::eventtype::Pressure && currentTimestamp >= header->timestamp &&
480+ IsEventStillValid (header, currentTimestamp)) {
474481 return reinterpret_cast <std::unique_ptr<WeatherData::Pressure>&>(header);
475482 }
476483 }
@@ -481,7 +488,8 @@ namespace Pinetime {
481488 std::unique_ptr<WeatherData::Location>& WeatherService::GetCurrentLocation () {
482489 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
483490 for (auto && header : this ->timeline ) {
484- if (header->eventType == WeatherData::eventtype::Location && IsEventStillValid (header, currentTimestamp)) {
491+ if (header->eventType == WeatherData::eventtype::Location && currentTimestamp >= header->timestamp &&
492+ IsEventStillValid (header, currentTimestamp)) {
485493 return reinterpret_cast <std::unique_ptr<WeatherData::Location>&>(header);
486494 }
487495 }
@@ -492,7 +500,8 @@ namespace Pinetime {
492500 std::unique_ptr<WeatherData::AirQuality>& WeatherService::GetCurrentQuality () {
493501 uint64_t currentTimestamp = GetCurrentUnixTimestamp ();
494502 for (auto && header : this ->timeline ) {
495- if (header->eventType == WeatherData::eventtype::AirQuality && IsEventStillValid (header, currentTimestamp)) {
503+ if (header->eventType == WeatherData::eventtype::AirQuality && currentTimestamp >= header->timestamp &&
504+ IsEventStillValid (header, currentTimestamp)) {
496505 return reinterpret_cast <std::unique_ptr<WeatherData::AirQuality>&>(header);
497506 }
498507 }
0 commit comments