diff options
author | Thomas Amland <thomas.amland@gmail.com> | 2016-09-25 09:55:10 +0200 |
---|---|---|
committer | Thomas Amland <thomas.amland@gmail.com> | 2016-09-26 21:39:05 +0200 |
commit | 957853759effe052fced3dbe31455f09cdc03bae (patch) | |
tree | 7797e775f723d91685600c58ebfea23b4578fdf4 | |
parent | efaa173d94595a4a1b30a6f522d38526c3522c21 (diff) |
[splash] only show addon migration text when it takes place
-rw-r--r-- | xbmc/Application.cpp | 5 | ||||
-rw-r--r-- | xbmc/addons/AddonSystemSettings.cpp | 4 | ||||
-rw-r--r-- | xbmc/addons/AddonSystemSettings.h | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 3b3fe9c5d1..b13393ec44 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -1142,9 +1142,10 @@ bool CApplication::Initialize() g_windowManager.CreateWindows(); - CSplash::GetInstance().Show(g_localizeStrings.Get(24151)); m_confirmSkinChange = false; - m_incompatibleAddons = CAddonSystemSettings::GetInstance().MigrateAddons(); + m_incompatibleAddons = CAddonSystemSettings::GetInstance().MigrateAddons([](){ + CSplash::GetInstance().Show(g_localizeStrings.Get(24151)); + }); m_confirmSkinChange = true; CSplash::GetInstance().Show(); diff --git a/xbmc/addons/AddonSystemSettings.cpp b/xbmc/addons/AddonSystemSettings.cpp index 6df9d33b35..620fcd7184 100644 --- a/xbmc/addons/AddonSystemSettings.cpp +++ b/xbmc/addons/AddonSystemSettings.cpp @@ -126,7 +126,7 @@ bool CAddonSystemSettings::UnsetActive(const AddonPtr& addon) } -std::vector<std::string> CAddonSystemSettings::MigrateAddons() +std::vector<std::string> CAddonSystemSettings::MigrateAddons(std::function<void(void)> onMigrate) { auto getIncompatible = [](){ VECADDONS incompatible; @@ -141,6 +141,8 @@ std::vector<std::string> CAddonSystemSettings::MigrateAddons() if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_ON) { + onMigrate(); + if (CRepositoryUpdater::GetInstance().CheckForUpdates()) CRepositoryUpdater::GetInstance().Await(); diff --git a/xbmc/addons/AddonSystemSettings.h b/xbmc/addons/AddonSystemSettings.h index f23c9eb119..3ecd0ed127 100644 --- a/xbmc/addons/AddonSystemSettings.h +++ b/xbmc/addons/AddonSystemSettings.h @@ -21,6 +21,7 @@ #include "addons/IAddon.h" #include "settings/lib/ISettingCallback.h" +#include <functional> #include <string> namespace ADDON @@ -48,9 +49,12 @@ public: bool UnsetActive(const AddonPtr& addon); /*! - * Attempt to migrate installed addons. Returns a list of addons that was modified. + * Check compatibility of installed addons and attempt to migrate. + * + * @param onMigrate Called when a long running migration task takes place. + * @return list of addons that was modified. */ - std::vector<std::string> MigrateAddons(); + std::vector<std::string> MigrateAddons(std::function<void(void)> onMigrate); private: CAddonSystemSettings(); |