aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jcmarsha@gmail.com>2014-06-10 19:57:15 +1200
committerjmarshallnz <jcmarsha@gmail.com>2014-06-10 19:57:15 +1200
commit8e0033a8ed387db48fb4ddf68b43cb7fc184de80 (patch)
treeb4d1756e0d13eaf1da3e6f5e3a8af7c6d45415fd
parent648b8b779187b5f414f78022b373126b41c39284 (diff)
parente689db7ce1fc5ce28c3f5d3e45a6977b8cdcb23d (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.xml7
-rwxr-xr-xlanguage/English/strings.po60
-rw-r--r--system/settings/settings.xml12
-rw-r--r--xbmc/Application.cpp3
-rw-r--r--xbmc/addons/Addon.cpp8
-rw-r--r--xbmc/addons/AddonInstaller.cpp18
-rw-r--r--xbmc/addons/AddonInstaller.h11
-rw-r--r--xbmc/addons/AddonManager.cpp4
-rw-r--r--xbmc/addons/GUIDialogAddonInfo.cpp2
-rw-r--r--xbmc/addons/GUIViewStateAddonBrowser.cpp40
-rw-r--r--xbmc/addons/GUIWindowAddonBrowser.cpp29
-rw-r--r--xbmc/addons/IAddon.h5
-rw-r--r--xbmc/addons/Repository.cpp2
-rw-r--r--xbmc/filesystem/AddonsDirectory.cpp17
-rw-r--r--xbmc/interfaces/json-rpc/AddonsOperations.cpp6
-rw-r--r--xbmc/pvr/PVRManager.cpp2
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));