[traffic] Make traffic initialization work with LoadMapsAsync()

Signed-off-by: mvglasow <michael -at- vonglasow.com>
This commit is contained in:
mvglasow
2025-07-27 01:24:34 +03:00
parent 958be3dee6
commit 871cd73592
2 changed files with 54 additions and 10 deletions

View File

@@ -394,16 +394,6 @@ Framework::Framework(FrameworkParams const & params, bool loadMaps)
if (loadMaps)
LoadMapsSync();
m_trafficManager.SetEnabled(LoadTrafficEnabled());
if (!params.m_trafficTestMode && LoadTrafficHttpEnabled())
// TODO handle invalid URLs
traffxml::HttpTraffSource::Create(m_trafficManager, LoadTrafficHttpUrl());
/*
* MockTraffSource for debugging purposes.
*/
//traffxml::MockTraffSource::Create(m_trafficManager);
}
Framework::~Framework()
@@ -423,6 +413,19 @@ Framework::~Framework()
m_featuresFetcher.SetOnMapDeregisteredCallback(nullptr);
}
void Framework::InitializeTraffic()
{
m_trafficManager.SetEnabled(LoadTrafficEnabled());
if (!m_trafficManager.IsTestMode() && LoadTrafficHttpEnabled())
// TODO handle invalid URLs
traffxml::HttpTraffSource::Create(m_trafficManager, LoadTrafficHttpUrl());
/*
* MockTraffSource for debugging purposes.
*/
//traffxml::MockTraffSource::Create(m_trafficManager);
}
void Framework::ShowNode(storage::CountryId const & countryId)
{
StopLocationFollow();
@@ -529,6 +532,8 @@ void Framework::LoadMapsSync()
LOG(LDEBUG, ("Editor initialized"));
GetStorage().RestoreDownloadQueue();
InitializeTraffic();
}
// Small copy-paste with LoadMapsSync, but I don't have a better solution.
@@ -551,6 +556,8 @@ void Framework::LoadMapsAsync(std::function<void()> && callback)
GetStorage().RestoreDownloadQueue();
InitializeTraffic();
callback();
});
}).detach();