diff options
author | jmarshallnz <jcmarsha@gmail.com> | 2014-06-10 19:57:15 +1200 |
---|---|---|
committer | jmarshallnz <jcmarsha@gmail.com> | 2014-06-10 19:57:15 +1200 |
commit | 8e0033a8ed387db48fb4ddf68b43cb7fc184de80 (patch) | |
tree | b4d1756e0d13eaf1da3e6f5e3a8af7c6d45415fd | |
parent | 648b8b779187b5f414f78022b373126b41c39284 (diff) | |
parent | e689db7ce1fc5ce28c3f5d3e45a6977b8cdcb23d (diff) |
Merge pull request #4287 from jmarshallnz/neverneverland
[addons] add support for 'never' updating or checking for updates
-rw-r--r-- | addons/skin.confluence/720p/AddonBrowser.xml | 7 | ||||
-rwxr-xr-x | language/English/strings.po | 60 | ||||
-rw-r--r-- | system/settings/settings.xml | 12 | ||||
-rw-r--r-- | xbmc/Application.cpp | 3 | ||||
-rw-r--r-- | xbmc/addons/Addon.cpp | 8 | ||||
-rw-r--r-- | xbmc/addons/AddonInstaller.cpp | 18 | ||||
-rw-r--r-- | xbmc/addons/AddonInstaller.h | 11 | ||||
-rw-r--r-- | xbmc/addons/AddonManager.cpp | 4 | ||||
-rw-r--r-- | xbmc/addons/GUIDialogAddonInfo.cpp | 2 | ||||
-rw-r--r-- | xbmc/addons/GUIViewStateAddonBrowser.cpp | 40 | ||||
-rw-r--r-- | xbmc/addons/GUIWindowAddonBrowser.cpp | 29 | ||||
-rw-r--r-- | xbmc/addons/IAddon.h | 5 | ||||
-rw-r--r-- | xbmc/addons/Repository.cpp | 2 | ||||
-rw-r--r-- | xbmc/filesystem/AddonsDirectory.cpp | 17 | ||||
-rw-r--r-- | xbmc/interfaces/json-rpc/AddonsOperations.cpp | 6 | ||||
-rw-r--r-- | xbmc/pvr/PVRManager.cpp | 2 |
16 files changed, 187 insertions, 39 deletions
diff --git a/addons/skin.confluence/720p/AddonBrowser.xml b/addons/skin.confluence/720p/AddonBrowser.xml index 133cb6697e..bea44b9e5d 100644 --- a/addons/skin.confluence/720p/AddonBrowser.xml +++ b/addons/skin.confluence/720p/AddonBrowser.xml @@ -98,10 +98,9 @@ <align>center</align> <aligny>center</aligny> </control> - <control type="radiobutton" id="5"> - <description>Enable auto-updates</description> - <left>0</left> - <top>130</top> + <control type="button" id="5"> + <description>addon-updates</description> + <textwidth>235</textwidth> <include>ButtonCommonValues</include> <label>24063</label> </control> diff --git a/language/English/strings.po b/language/English/strings.po index 68b2280426..d386f688cb 100755 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -4914,7 +4914,25 @@ msgctxt "#12395" msgid "Battery level" msgstr "" -#empty strings from id 12396 to 12599 +#. Used on the button to toggle add-on update mode in the Add-on Manager. +#: xbmc/addons/GUIWindowAddonBrowser.cpp +msgctxt "#12396" +msgid "Auto updates: On" +msgstr "" + +#. Used on the button to toggle add-on update mode in the Add-on Manager. +#: xbmc/addons/GUIWindowAddonBrowser.cpp +msgctxt "#12397" +msgid "Auto updates: Notify" +msgstr "" + +#. Used on the button to toggle add-on update mode in the Add-on Manager. +#: xbmc/addons/GUIWindowAddonBrowser.cpp +msgctxt "#12398" +msgid "Auto updates: Never" +msgstr "" + +#empty strings from id 12399 to 12599 #: xbmc/guilib/WindowIDs.h msgctxt "#12600" @@ -12101,7 +12119,19 @@ msgctxt "#24054" msgid "Changelog" msgstr "" -#empty strings from id 24055 to 24058 +#. Used in the Add-on Manager +#: xbmc/addons/GUIViewStateAddonBrowser.cpp +msgctxt "#24055" +msgid "Check for updates" +msgstr "" + +#. Used in the Add-on Manager to specify last update time +#: xbmc/addons/GUIViewStateAddonBrowser.cpp +msgctxt "#24056" +msgid "Last updated %s" +msgstr "" + +#empty strings from id 24057 to 24058 msgctxt "#24059" msgid "Would you like to enable this Add-on?" @@ -12191,7 +12221,31 @@ msgctxt "#24080" msgid "Try to reconnect?" msgstr "" -#empty strings from id 24081 to 24088 +#. The label in the add-ons manager for helper add-ons +#: xbmc/addons/addon.cpp +msgctxt "#24081" +msgid "Helper Add-ons" +msgstr "" + +#. The label in the add-ons manager for add-on libraries +#: xbmc/addons/addon.cpp +msgctxt "#24082" +msgid "Add-on libraries" +msgstr "" + +#. The label in the add-ons manager for information libraries +#: xbmc/addons/addon.cpp +msgctxt "#24083" +msgid "Information libraries" +msgstr "" + +#. The label in the add-ons manager for visualisation libraries +#: xbmc/addons/addon.cpp +msgctxt "#24084" +msgid "Visualisation libraries" +msgstr "" + +#empty strings from id 24085 to 24088 msgctxt "#24089" msgid "Add-on restarts" diff --git a/system/settings/settings.xml b/system/settings/settings.xml index 391bcee967..781811cb46 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2981,9 +2981,17 @@ </category> <category id="general" label="" help="36412"> <group id="1"> - <setting id="general.addonautoupdate" type="boolean" label="0" help="36413"> + <setting id="general.addonupdates" type="integer" label="0" help="36413"> <level>4</level> - <default>true</default> + <default>0</default> + <constraints> + <options> + <option label="12396">0</option> <!-- AUTO_UPDATES_ON --> + <option label="12397">1</option> <!-- AUTO_UPDATES_NOTIFY --> + <option label="12398">2</option> <!-- AUTO_UPDATES_NEVER --> + </options> + </constraints> + <control type="spinner" format="string" /> </setting> <setting id="general.addonnotifications" type="boolean" label="0" help="36414"> <level>4</level> diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 1eb1bd82ff..76fcf3514f 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -5170,7 +5170,8 @@ void CApplication::ProcessSlow() g_RemoteControl.Initialize(); #endif - if (!m_pPlayer->IsPlayingVideo()) + if (!m_pPlayer->IsPlayingVideo() && + CSettings::Get().GetInt("general.addonupdates") != AUTO_UPDATES_NEVER) CAddonInstaller::Get().UpdateRepos(); CAEFactory::GarbageCollect(); diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp index 10c5dea0bd..ccfd99c694 100644 --- a/xbmc/addons/Addon.cpp +++ b/xbmc/addons/Addon.cpp @@ -68,16 +68,16 @@ static const TypeMapping types[] = {"xbmc.metadata.scraper.movies", ADDON_SCRAPER_MOVIES, 24007, "DefaultAddonMovieInfo.png" }, {"xbmc.metadata.scraper.musicvideos", ADDON_SCRAPER_MUSICVIDEOS, 24015, "DefaultAddonMusicVideoInfo.png" }, {"xbmc.metadata.scraper.tvshows", ADDON_SCRAPER_TVSHOWS, 24014, "DefaultAddonTvInfo.png" }, - {"xbmc.metadata.scraper.library", ADDON_SCRAPER_LIBRARY, 0, "" }, + {"xbmc.metadata.scraper.library", ADDON_SCRAPER_LIBRARY, 24083, "" }, {"xbmc.ui.screensaver", ADDON_SCREENSAVER, 24008, "DefaultAddonScreensaver.png" }, {"xbmc.player.musicviz", ADDON_VIZ, 24010, "DefaultAddonVisualization.png" }, - {"visualization-library", ADDON_VIZ_LIBRARY, 0, "" }, + {"visualization-library", ADDON_VIZ_LIBRARY, 24084, "" }, {"xbmc.python.pluginsource", ADDON_PLUGIN, 24005, "" }, {"xbmc.python.script", ADDON_SCRIPT, 24009, "" }, {"xbmc.python.weather", ADDON_SCRIPT_WEATHER, 24027, "DefaultAddonWeather.png" }, {"xbmc.python.lyrics", ADDON_SCRIPT_LYRICS, 24013, "DefaultAddonLyrics.png" }, - {"xbmc.python.library", ADDON_SCRIPT_LIBRARY, 24014, "" }, - {"xbmc.python.module", ADDON_SCRIPT_MODULE, 0, "" }, + {"xbmc.python.library", ADDON_SCRIPT_LIBRARY, 24081, "" }, + {"xbmc.python.module", ADDON_SCRIPT_MODULE, 24082, "" }, {"xbmc.subtitle.module", ADDON_SUBTITLE_MODULE, 24012, "DefaultAddonSubtitles.png" }, {"xbmc.gui.skin", ADDON_SKIN, 166, "DefaultAddonSkin.png" }, {"xbmc.gui.webinterface", ADDON_WEB_INTERFACE, 199, "DefaultAddonWebSkin.png" }, diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp index b5e6169526..30f408042d 100644 --- a/xbmc/addons/AddonInstaller.cpp +++ b/xbmc/addons/AddonInstaller.cpp @@ -357,6 +357,22 @@ bool CAddonInstaller::CheckDependencies(const AddonPtr &addon, return true; } +CDateTime CAddonInstaller::LastRepoUpdate() const +{ + CDateTime update; + VECADDONS addons; + CAddonMgr::Get().GetAddons(ADDON_REPOSITORY,addons); + for (unsigned int i=0;i<addons.size();++i) + { + CAddonDatabase database; + database.Open(); + CDateTime lastUpdate = database.GetRepoTimestamp(addons[i]->ID()); + if (lastUpdate.IsValid() && lastUpdate > update) + update = lastUpdate; + } + return update; +} + void CAddonInstaller::UpdateRepos(bool force, bool wait) { CSingleLock lock(m_critSection); @@ -715,7 +731,7 @@ bool CAddonInstallJob::Install(const CStdString &installFrom, const AddonPtr& re void CAddonInstallJob::OnPostInstall(bool reloadAddon) { - if (m_addon->Type() < ADDON_VIZ_LIBRARY && CSettings::Get().GetBool("general.addonnotifications")) + if (CSettings::Get().GetBool("general.addonnotifications")) { CGUIDialogKaiToast::QueueNotification(m_addon->Icon(), m_addon->Name(), diff --git a/xbmc/addons/AddonInstaller.h b/xbmc/addons/AddonInstaller.h index eb8ae11db9..47c929a36a 100644 --- a/xbmc/addons/AddonInstaller.h +++ b/xbmc/addons/AddonInstaller.h @@ -26,6 +26,13 @@ class CAddonDatabase; +enum { + AUTO_UPDATES_ON = 0, + AUTO_UPDATES_NOTIFY, + AUTO_UPDATES_NEVER, + AUTO_UPDATES_MAX +}; + class CAddonInstaller : public IJobCallback { public: @@ -89,6 +96,10 @@ public: */ bool HasJob(const CStdString& ID) const; + /*! \brief Fetch the last repository update time. + \return the last time a repository was updated. + */ + CDateTime LastRepoUpdate() const; void UpdateRepos(bool force = false, bool wait = false); void OnJobComplete(unsigned int jobID, bool success, CJob* job); diff --git a/xbmc/addons/AddonManager.cpp b/xbmc/addons/AddonManager.cpp index 21c6adef19..09ebab45c6 100644 --- a/xbmc/addons/AddonManager.cpp +++ b/xbmc/addons/AddonManager.cpp @@ -318,7 +318,7 @@ bool CAddonMgr::HasAddons(const TYPE &type, bool enabled /*= true*/) bool CAddonMgr::GetAllAddons(VECADDONS &addons, bool enabled /*= true*/, bool allowRepos /* = false */) { - for (int i = ADDON_UNKNOWN+1; i < ADDON_VIZ_LIBRARY; ++i) + for (int i = ADDON_UNKNOWN+1; i < ADDON_MAX; ++i) { if (!allowRepos && ADDON_REPOSITORY == (TYPE)i) continue; @@ -375,7 +375,7 @@ bool CAddonMgr::ReloadSettings(const CStdString &id) bool CAddonMgr::GetAllOutdatedAddons(VECADDONS &addons, bool getLocalVersion /*= false*/) { CSingleLock lock(m_critSection); - for (int i = ADDON_UNKNOWN+1; i < ADDON_VIZ_LIBRARY; ++i) + for (int i = ADDON_UNKNOWN+1; i < ADDON_MAX; ++i) { VECADDONS temp; if (CAddonMgr::Get().GetAddons((TYPE)i, temp, true)) diff --git a/xbmc/addons/GUIDialogAddonInfo.cpp b/xbmc/addons/GUIDialogAddonInfo.cpp index 5b87e807e2..b93e8110a5 100644 --- a/xbmc/addons/GUIDialogAddonInfo.cpp +++ b/xbmc/addons/GUIDialogAddonInfo.cpp @@ -372,7 +372,7 @@ bool CGUIDialogAddonInfo::SetItem(const CFileItemPtr& item) else if (m_localAddon) // sanity database.GetRepository(m_localAddon->ID(), addons); int tot=0; - for (int i = ADDON_UNKNOWN+1;i<ADDON_VIZ_LIBRARY;++i) + for (int i = ADDON_UNKNOWN+1;i<ADDON_MAX;++i) { int num=0; for (unsigned int j=0;j<addons.size();++j) diff --git a/xbmc/addons/GUIViewStateAddonBrowser.cpp b/xbmc/addons/GUIViewStateAddonBrowser.cpp index 6f486f38d3..f3dfd1700b 100644 --- a/xbmc/addons/GUIViewStateAddonBrowser.cpp +++ b/xbmc/addons/GUIViewStateAddonBrowser.cpp @@ -26,17 +26,26 @@ #include "view/ViewState.h" #include "addons/Addon.h" #include "addons/AddonManager.h" +#include "addons/AddonInstaller.h" #include "AddonDatabase.h" +#include "utils/StringUtils.h" using namespace XFILE; using namespace ADDON; CGUIViewStateAddonBrowser::CGUIViewStateAddonBrowser(const CFileItemList& items) : CGUIViewState(items) { - AddSortMethod(SortByLabel, SortAttributeIgnoreFolders, 551, LABEL_MASKS("%L", "%I", "%L", "")); // Filename, Size | Foldername, empty - AddSortMethod(SortByDate, 552, LABEL_MASKS("%L", "%J", "%L", "%J")); // Filename, Date | Foldername, Date - SetSortMethod(SortByLabel, SortAttributeIgnoreFolders); - + if (items.IsVirtualDirectoryRoot()) + { + AddSortMethod(SortByNone, 551, LABEL_MASKS("%F", "", "%L", "")); + SetSortMethod(SortByNone); + } + else + { + AddSortMethod(SortByLabel, SortAttributeIgnoreFolders, 551, LABEL_MASKS("%L", "%I", "%L", "")); // Filename, Size | Foldername, empty + AddSortMethod(SortByDate, 552, LABEL_MASKS("%L", "%J", "%L", "%J")); // Filename, Date | Foldername, Date + SetSortMethod(SortByLabel, SortAttributeIgnoreFolders); + } SetViewAsControl(DEFAULT_VIEW_AUTO); SetSortOrder(SortOrderAscending); @@ -57,12 +66,23 @@ VECSOURCES& CGUIViewStateAddonBrowser::GetSources() { m_sources.clear(); - // we always have some enabled addons + { // check for updates + CMediaSource share; + share.strPath = "addons://check/"; + share.m_iDriveType = CMediaSource::SOURCE_TYPE_REMOTE; // hack for sorting + share.strName = g_localizeStrings.Get(24055); // "Check for updates" + CDateTime lastChecked = CAddonInstaller::Get().LastRepoUpdate(); + if (lastChecked.IsValid()) + share.strStatus = StringUtils::Format(g_localizeStrings.Get(24056).c_str(), + lastChecked.GetAsLocalizedDateTime(false, false).c_str()); + m_sources.push_back(share); + } + if (CAddonMgr::Get().HasOutdatedAddons()) { CMediaSource share; - share.strPath = "addons://enabled/"; + share.strPath = "addons://outdated/"; share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; - share.strName = g_localizeStrings.Get(24062); + share.strName = g_localizeStrings.Get(24043); // "Available updates" m_sources.push_back(share); } CAddonDatabase db; @@ -74,12 +94,12 @@ VECSOURCES& CGUIViewStateAddonBrowser::GetSources() share.strName = g_localizeStrings.Get(24039); m_sources.push_back(share); } - if (CAddonMgr::Get().HasOutdatedAddons()) + // we always have some enabled addons { CMediaSource share; - share.strPath = "addons://outdated/"; + share.strPath = "addons://enabled/"; share.m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL; - share.strName = g_localizeStrings.Get(24043); + share.strName = g_localizeStrings.Get(24062); m_sources.push_back(share); } if (CAddonMgr::Get().HasAddons(ADDON_REPOSITORY,true)) diff --git a/xbmc/addons/GUIWindowAddonBrowser.cpp b/xbmc/addons/GUIWindowAddonBrowser.cpp index 39af35672f..0eaf8a507f 100644 --- a/xbmc/addons/GUIWindowAddonBrowser.cpp +++ b/xbmc/addons/GUIWindowAddonBrowser.cpp @@ -89,7 +89,12 @@ bool CGUIWindowAddonBrowser::OnMessage(CGUIMessage& message) int iControl = message.GetSenderId(); if (iControl == CONTROL_AUTOUPDATE) { - CSettings::Get().ToggleBool("general.addonautoupdate"); + const CGUIControl *control = GetControl(CONTROL_AUTOUPDATE); + if (control && control->GetControlType() == CGUIControl::GUICONTROL_BUTTON) + CSettings::Get().SetInt("general.addonupdates", (CSettings::Get().GetInt("general.addonupdates")+1) % AUTO_UPDATES_MAX); + else + CSettings::Get().SetInt("general.addonupdates", (CSettings::Get().GetInt("general.addonupdates") == 0) ? 1 : 0); + UpdateButtons(); return true; } else if (iControl == CONTROL_SHUTUP) @@ -271,7 +276,27 @@ bool CGUIWindowAddonBrowser::OnClick(int iItem) void CGUIWindowAddonBrowser::UpdateButtons() { - SET_CONTROL_SELECTED(GetID(),CONTROL_AUTOUPDATE, CSettings::Get().GetBool("general.addonautoupdate")); + const CGUIControl *control = GetControl(CONTROL_AUTOUPDATE); + if (control && control->GetControlType() == CGUIControl::GUICONTROL_BUTTON) + { // set label + CSettingInt *setting = (CSettingInt *)CSettings::Get().GetSetting("general.addonupdates"); + if (setting) + { + const StaticIntegerSettingOptions& options = setting->GetOptions(); + for (StaticIntegerSettingOptions::const_iterator it = options.begin(); it != options.end(); ++it) + { + if (it->second == setting->GetValue()) + { + SET_CONTROL_LABEL(CONTROL_AUTOUPDATE, it->first); + break; + } + } + } + } + else + { // old skin with toggle button - set on if auto updates are on + SET_CONTROL_SELECTED(GetID(),CONTROL_AUTOUPDATE, CSettings::Get().GetInt("general.addonupdates") == AUTO_UPDATES_ON); + } SET_CONTROL_SELECTED(GetID(),CONTROL_SHUTUP, CSettings::Get().GetBool("general.addonnotifications")); SET_CONTROL_SELECTED(GetID(),CONTROL_FOREIGNFILTER, CSettings::Get().GetBool("general.addonforeignfilter")); CGUIMediaWindow::UpdateButtons(); diff --git a/xbmc/addons/IAddon.h b/xbmc/addons/IAddon.h index b097e9a557..41bbe134d2 100644 --- a/xbmc/addons/IAddon.h +++ b/xbmc/addons/IAddon.h @@ -54,10 +54,11 @@ namespace ADDON ADDON_AUDIO, ADDON_IMAGE, ADDON_EXECUTABLE, - ADDON_VIZ_LIBRARY, // add noninstallable after this and installable before + ADDON_VIZ_LIBRARY, ADDON_SCRAPER_LIBRARY, ADDON_SCRIPT_LIBRARY, - ADDON_SCRIPT_MODULE + ADDON_SCRIPT_MODULE, + ADDON_MAX } TYPE; class IAddon; diff --git a/xbmc/addons/Repository.cpp b/xbmc/addons/Repository.cpp index d5a44823db..51e1a2dd13 100644 --- a/xbmc/addons/Repository.cpp +++ b/xbmc/addons/Repository.cpp @@ -276,7 +276,7 @@ bool CRepositoryUpdateJob::DoWork() !database.IsAddonBlacklisted(newAddon->ID(),newAddon->Version().asString()) && deps_met) { - if (CSettings::Get().GetBool("general.addonautoupdate") || addon->Type() >= ADDON_VIZ_LIBRARY) + if (CSettings::Get().GetInt("general.addonupdates") == AUTO_UPDATES_ON) { string referer; if (URIUtils::IsInternetStream(newAddon->Path())) diff --git a/xbmc/filesystem/AddonsDirectory.cpp b/xbmc/filesystem/AddonsDirectory.cpp index 6b37819425..3992485837 100644 --- a/xbmc/filesystem/AddonsDirectory.cpp +++ b/xbmc/filesystem/AddonsDirectory.cpp @@ -78,10 +78,22 @@ bool CAddonsDirectory::GetDirectory(const CStdString& strPath, CFileItemList &it { reposAsFolders = false; groupAddons = false; + // ensure our repos are up to date + CAddonInstaller::Get().UpdateRepos(false, true); CAddonMgr::Get().GetAllOutdatedAddons(addons); items.SetProperty("reponame",g_localizeStrings.Get(24043)); items.SetLabel(g_localizeStrings.Get(24043)); } + else if (path.GetHostName().Equals("check")) + { + reposAsFolders = false; + groupAddons = false; + // force a refresh + CAddonInstaller::Get().UpdateRepos(true, true); + CAddonMgr::Get().GetAllOutdatedAddons(addons); + items.SetProperty("reponame",g_localizeStrings.Get(24055)); + items.SetLabel(g_localizeStrings.Get(24055)); + } else if (path.GetHostName().Equals("repos")) { groupAddons = false; @@ -139,7 +151,7 @@ bool CAddonsDirectory::GetDirectory(const CStdString& strPath, CFileItemList &it { if (groupAddons) { - for (int i=ADDON_UNKNOWN+1;i<ADDON_VIZ_LIBRARY;++i) + for (int i=ADDON_UNKNOWN+1;i<ADDON_MAX;++i) { for (unsigned int j=0;j<addons.size();++j) { @@ -200,7 +212,8 @@ bool CAddonsDirectory::GetDirectory(const CStdString& strPath, CFileItemList &it item->SetLabel(g_localizeStrings.Get(24032)); items.Add(item); } - else if (path.GetHostName().Equals("outdated") && items.Size() > 1) + else if ((path.GetHostName().Equals("outdated") || + path.GetHostName().Equals("check")) && items.Size() > 1) { CFileItemPtr item(new CFileItem("addons://update_all/", true)); item->SetLabel(g_localizeStrings.Get(24122)); diff --git a/xbmc/interfaces/json-rpc/AddonsOperations.cpp b/xbmc/interfaces/json-rpc/AddonsOperations.cpp index 7aed8b3cbb..ef7f012ef4 100644 --- a/xbmc/interfaces/json-rpc/AddonsOperations.cpp +++ b/xbmc/interfaces/json-rpc/AddonsOperations.cpp @@ -108,7 +108,7 @@ JSONRPC_STATUS CAddonsOperations::GetAddons(const CStdString &method, ITransport if (content != CPluginSource::UNKNOWN) plugin = boost::dynamic_pointer_cast<CPluginSource>(addons.at(index)); - if ((addons.at(index)->Type() <= ADDON_UNKNOWN || addons.at(index)->Type() >= ADDON_VIZ_LIBRARY) || + if ((addons.at(index)->Type() <= ADDON_UNKNOWN || addons.at(index)->Type() >= ADDON_MAX) || ((content != CPluginSource::UNKNOWN && plugin == NULL) || (plugin != NULL && !plugin->Provides(content)))) { addons.erase(addons.begin() + index); @@ -131,7 +131,7 @@ JSONRPC_STATUS CAddonsOperations::GetAddonDetails(const CStdString &method, ITra string id = parameterObject["addonid"].asString(); AddonPtr addon; if (!CAddonMgr::Get().GetAddon(id, addon, ADDON::ADDON_UNKNOWN, false) || addon.get() == NULL || - addon->Type() <= ADDON_UNKNOWN || addon->Type() >= ADDON_VIZ_LIBRARY) + addon->Type() <= ADDON_UNKNOWN || addon->Type() >= ADDON_MAX) return InvalidParams; CAddonDatabase addondb; @@ -163,7 +163,7 @@ JSONRPC_STATUS CAddonsOperations::ExecuteAddon(const CStdString &method, ITransp string id = parameterObject["addonid"].asString(); AddonPtr addon; if (!CAddonMgr::Get().GetAddon(id, addon) || addon.get() == NULL || - addon->Type() < ADDON_VIZ || addon->Type() >= ADDON_VIZ_LIBRARY) + addon->Type() < ADDON_VIZ || addon->Type() >= ADDON_MAX) return InvalidParams; string argv; diff --git a/xbmc/pvr/PVRManager.cpp b/xbmc/pvr/PVRManager.cpp index 0ba0382894..ac0de74e1f 100644 --- a/xbmc/pvr/PVRManager.cpp +++ b/xbmc/pvr/PVRManager.cpp @@ -208,7 +208,7 @@ bool CPVRManager::InstallAddonAllowed(const std::string& strAddonId) const void CPVRManager::MarkAsOutdated(const std::string& strAddonId, const std::string& strReferer) { - if (IsStarted() && CSettings::Get().GetBool("general.addonautoupdate")) + if (IsStarted() && CSettings::Get().GetInt("general.addonupdates") == AUTO_UPDATES_ON) { CSingleLock lock(m_critSection); m_outdatedAddons.insert(make_pair(strAddonId, strReferer)); |