aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Amland <thomas.amland@gmail.com>2016-09-25 09:55:10 +0200
committerThomas Amland <thomas.amland@gmail.com>2016-09-26 21:39:05 +0200
commit957853759effe052fced3dbe31455f09cdc03bae (patch)
tree7797e775f723d91685600c58ebfea23b4578fdf4
parentefaa173d94595a4a1b30a6f522d38526c3522c21 (diff)
[splash] only show addon migration text when it takes place
-rw-r--r--xbmc/Application.cpp5
-rw-r--r--xbmc/addons/AddonSystemSettings.cpp4
-rw-r--r--xbmc/addons/AddonSystemSettings.h8
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();