From 6efd22a3d22f8d87ad17da3a1e47ca26c5bb09f2 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Tue, 26 Feb 2013 11:10:55 -0500 Subject: added a shutdown api method, font size fix and other decouplings --- MediaBrowser.Controller/Library/LibraryManager.cs | 52 +++++++++++++++++++++-- 1 file changed, 48 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Controller/Library/LibraryManager.cs') diff --git a/MediaBrowser.Controller/Library/LibraryManager.cs b/MediaBrowser.Controller/Library/LibraryManager.cs index c0c1fe1d6..53f4af4b2 100644 --- a/MediaBrowser.Controller/Library/LibraryManager.cs +++ b/MediaBrowser.Controller/Library/LibraryManager.cs @@ -1,8 +1,10 @@ using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MoreLinq; @@ -20,7 +22,7 @@ namespace MediaBrowser.Controller.Library /// /// Class LibraryManager /// - public class LibraryManager : BaseManager + public class LibraryManager { #region LibraryChanged Event /// @@ -48,7 +50,7 @@ namespace MediaBrowser.Controller.Library private void SendLibraryChangedWebSocketMessage(ChildrenChangedEventArgs args) { // Notify connected ui's - Kernel.TcpManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args)); + Kernel.ServerManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args)); } #endregion @@ -57,15 +59,57 @@ namespace MediaBrowser.Controller.Library /// private readonly ILogger _logger; + /// + /// The _task manager + /// + private readonly ITaskManager _taskManager; + + /// + /// Gets or sets the kernel. + /// + /// The kernel. + private Kernel Kernel { get; set; } + /// /// Initializes a new instance of the class. /// /// The kernel. /// The logger. - public LibraryManager(Kernel kernel, ILogger logger) - : base(kernel) + /// The task manager. + public LibraryManager(Kernel kernel, ILogger logger, ITaskManager taskManager) { + Kernel = kernel; _logger = logger; + _taskManager = taskManager; + + kernel.ConfigurationUpdated += kernel_ConfigurationUpdated; + } + + /// + /// Handles the ConfigurationUpdated event of the kernel control. + /// + /// The source of the event. + /// The instance containing the event data. + void kernel_ConfigurationUpdated(object sender, EventArgs e) + { + //// Figure out whether or not we should refresh people after the update is finished + //var refreshPeopleAfterUpdate = !oldConfiguration.EnableInternetProviders && config.EnableInternetProviders; + + //// This is true if internet providers has just been turned on, or if People have just been removed from InternetProviderExcludeTypes + //if (!refreshPeopleAfterUpdate) + //{ + // var oldConfigurationFetchesPeopleImages = oldConfiguration.InternetProviderExcludeTypes == null || !oldConfiguration.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); + // var newConfigurationFetchesPeopleImages = config.InternetProviderExcludeTypes == null || !config.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); + + // refreshPeopleAfterUpdate = newConfigurationFetchesPeopleImages && !oldConfigurationFetchesPeopleImages; + //} + + Task.Run(() => + { + // Any number of configuration settings could change the way the library is refreshed, so do that now + _taskManager.CancelIfRunningAndQueue(); + _taskManager.CancelIfRunningAndQueue(); + }); } /// -- cgit v1.2.3