First attempt at using current radar site for alerts

This commit is contained in:
AdenKoperczak 2024-07-02 12:30:07 -04:00
parent dea53bddb4
commit 91eb3d3b87
3 changed files with 41 additions and 5 deletions

View file

@ -1466,6 +1466,7 @@ void MainWindowImpl::UpdateRadarSite()
timelineManager_->SetRadarSite("?");
}
alertManager_->SetRadarSite(radarSite);
placefileManager_->SetRadarSite(radarSite);
}

View file

@ -76,6 +76,8 @@ public:
PositionManager::Instance()};
std::shared_ptr<TextEventManager> textEventManager_ {
TextEventManager::Instance()};
std::shared_ptr<config::RadarSite> radarSite_ {};
};
AlertManager::AlertManager() : p(std::make_unique<Impl>(this)) {}
@ -104,11 +106,23 @@ common::Coordinate AlertManager::Impl::CurrentCoordinate(
}
else if (locationMethod == types::LocationMethod::RadarSite)
{
std::string siteId =
settings::GeneralSettings::Instance().default_radar_site().GetValue();
auto radarSite = config::RadarSite::Get(siteId);
coordinate.latitude_ = radarSite->latitude();
coordinate.longitude_ = radarSite->longitude();
std::shared_ptr<config::RadarSite> radarSite;
if (radarSite_ == nullptr)
{
std::string siteId =
settings::GeneralSettings::Instance().default_radar_site().GetValue();
radarSite = config::RadarSite::Get(siteId);
}
else
{
radarSite = radarSite_;
}
if (radarSite != nullptr)
{
coordinate.latitude_ = radarSite->latitude();
coordinate.longitude_ = radarSite->longitude();
}
}
return coordinate;
@ -198,6 +212,26 @@ void AlertManager::Impl::UpdateLocationTracking(
positionManager_->EnablePositionUpdates(uuid_, locationEnabled);
}
void AlertManager::SetRadarSite(std::shared_ptr<config::RadarSite> radarSite)
{
if (p->radarSite_ == radarSite)
{
// No action needed
return;
}
if (radarSite == nullptr)
{
logger_->debug("SetRadarSite: ?");
}
else
{
logger_->debug("SetRadarSite: {}", radarSite->id());
}
p->radarSite_ = radarSite;
}
std::shared_ptr<AlertManager> AlertManager::Instance()
{
static std::weak_ptr<AlertManager> alertManagerReference_ {};

View file

@ -20,6 +20,7 @@ public:
explicit AlertManager();
~AlertManager();
void AlertManager::SetRadarSite(const std::string& radarSite);
static std::shared_ptr<AlertManager> Instance();
private: