Fix #2511
This commit is contained in:
@@ -55,6 +55,11 @@ AddonsManager* addons_manager = 0;
|
||||
AddonsManager::AddonsManager() : m_addons_list(std::vector<Addon>() ),
|
||||
m_state(STATE_INIT)
|
||||
{
|
||||
// Clean .part file which may be left behind
|
||||
std::string addons_part = file_manager->getAddonsFile("addons.xml.part");
|
||||
if (file_manager->fileExists(addons_part))
|
||||
file_manager->removeFile(addons_part);
|
||||
|
||||
m_file_installed = file_manager->getAddonsFile("addons_installed.xml");
|
||||
|
||||
// Load the addons list (even if internet is disabled)
|
||||
@@ -90,6 +95,8 @@ void AddonsManager::init(const XMLNode *xml,
|
||||
StkTime::TimeType mtime(0);
|
||||
const XMLNode *include = xml->getNode("include");
|
||||
std::string filename=file_manager->getAddonsFile("addons.xml");
|
||||
// Prevent downloading when .part file created, which is already downloaded
|
||||
std::string filename_part=file_manager->getAddonsFile("addons.xml.part");
|
||||
if(!include)
|
||||
{
|
||||
file_manager->removeFile(filename);
|
||||
@@ -110,7 +117,8 @@ void AddonsManager::init(const XMLNode *xml,
|
||||
( mtime > UserConfigParams::m_addons_last_updated +frequency ||
|
||||
force_refresh ||
|
||||
!file_manager->fileExists(filename) )
|
||||
&& UserConfigParams::m_internet_status == RequestManager::IPERM_ALLOWED;
|
||||
&& UserConfigParams::m_internet_status == RequestManager::IPERM_ALLOWED
|
||||
&& !file_manager->fileExists(filename_part);
|
||||
|
||||
if (download)
|
||||
{
|
||||
|
||||
@@ -40,6 +40,12 @@ NewsManager::NewsManager() : m_news(std::vector<NewsMessage>())
|
||||
m_current_news_message = -1;
|
||||
m_error_message.setAtomic("");
|
||||
m_force_refresh = false;
|
||||
|
||||
// Clean .part file which may be left behind
|
||||
std::string news_part = file_manager->getAddonsFile("news.xml.part");
|
||||
if (file_manager->fileExists(news_part))
|
||||
file_manager->removeFile(news_part);
|
||||
|
||||
init(false);
|
||||
} // NewsManage
|
||||
|
||||
@@ -99,6 +105,8 @@ void* NewsManager::downloadNews(void *obj)
|
||||
me->clearErrorMessage();
|
||||
|
||||
std::string xml_file = file_manager->getAddonsFile("news.xml");
|
||||
// Prevent downloading when .part file created, which is already downloaded
|
||||
std::string xml_file_part = file_manager->getAddonsFile("news.xml.part");
|
||||
bool news_exists = file_manager->fileExists(xml_file);
|
||||
|
||||
// The news message must be updated if either it has never been updated,
|
||||
@@ -111,8 +119,8 @@ void* NewsManager::downloadNews(void *obj)
|
||||
< StkTime::getTimeSinceEpoch() ||
|
||||
me->m_force_refresh ||
|
||||
!news_exists )
|
||||
&& UserConfigParams::m_internet_status==RequestManager::IPERM_ALLOWED;
|
||||
|
||||
&& UserConfigParams::m_internet_status==RequestManager::IPERM_ALLOWED
|
||||
&& !file_manager->fileExists(xml_file_part);
|
||||
const XMLNode *xml = NULL;
|
||||
|
||||
if(!download && news_exists)
|
||||
|
||||
Reference in New Issue
Block a user