diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-03 00:10:11 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-03 00:10:11 -0400 |
| commit | 6481688d2acc23b789dab6e8ad04a96e48c46064 (patch) | |
| tree | ddc3fcb30fcc9187563e9cb297e9ae938f0581c0 /MediaBrowser.Server.Implementations/IO | |
| parent | b79840e20f068f087d845e4abf1e817d211a1783 (diff) | |
fixes #223 - New Content Localhost Popups Repeat 'Old' 'New Content' on Media Changes
Diffstat (limited to 'MediaBrowser.Server.Implementations/IO')
| -rw-r--r-- | MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs index d45952d6f..51fbfd219 100644 --- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs @@ -103,7 +103,8 @@ namespace MediaBrowser.Server.Implementations.IO /// </summary> public void Start() { - LibraryManager.LibraryChanged += Instance_LibraryChanged; + LibraryManager.ItemAdded += LibraryManager_ItemAdded; + LibraryManager.ItemRemoved += LibraryManager_ItemRemoved; var pathsToWatch = new List<string> { LibraryManager.RootFolder.Path }; @@ -138,6 +139,32 @@ namespace MediaBrowser.Server.Implementations.IO } /// <summary> + /// Handles the ItemRemoved event of the LibraryManager control. + /// </summary> + /// <param name="sender">The source of the event.</param> + /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param> + void LibraryManager_ItemRemoved(object sender, ItemChangeEventArgs e) + { + if (e.Item.Parent is AggregateFolder) + { + StopWatchingPath(e.Item.Path); + } + } + + /// <summary> + /// Handles the ItemAdded event of the LibraryManager control. + /// </summary> + /// <param name="sender">The source of the event.</param> + /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param> + void LibraryManager_ItemAdded(object sender, ItemChangeEventArgs e) + { + if (e.Item.Parent is AggregateFolder) + { + StartWatchingPath(e.Item.Path); + } + } + + /// <summary> /// Examine a list of strings assumed to be file paths to see if it contains a parent of /// the provided path. /// </summary> @@ -232,32 +259,6 @@ namespace MediaBrowser.Server.Implementations.IO } /// <summary> - /// Handles the LibraryChanged event of the Kernel - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="MediaBrowser.Controller.Library.ChildrenChangedEventArgs" /> instance containing the event data.</param> - void Instance_LibraryChanged(object sender, ChildrenChangedEventArgs e) - { - if (e.Folder is AggregateFolder && e.HasAddOrRemoveChange) - { - if (e.ItemsRemoved != null) - { - foreach (var item in e.ItemsRemoved.OfType<Folder>()) - { - StopWatchingPath(item.Path); - } - } - if (e.ItemsAdded != null) - { - foreach (var item in e.ItemsAdded.OfType<Folder>()) - { - StartWatchingPath(item.Path); - } - } - } - } - - /// <summary> /// Handles the Error event of the watcher control. /// </summary> /// <param name="sender">The source of the event.</param> @@ -497,7 +498,8 @@ namespace MediaBrowser.Server.Implementations.IO /// </summary> public void Stop() { - LibraryManager.LibraryChanged -= Instance_LibraryChanged; + LibraryManager.ItemAdded -= LibraryManager_ItemAdded; + LibraryManager.ItemRemoved -= LibraryManager_ItemRemoved; FileSystemWatcher watcher; |
