aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/MainWindow.xaml.cs
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-03-03 00:20:14 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-03-03 00:20:14 -0500
commitf26a3e3c615474eb9f64f005448bb8ce4b08e13f (patch)
treecba34c02c20aa6f46cec2b04036d4ff53496ae56 /MediaBrowser.ServerApplication/MainWindow.xaml.cs
parent1ffc19a9a02ac7dc8bda4faecb793e760284ee5e (diff)
created entry point classes for the startup wizard and new item notifications
Diffstat (limited to 'MediaBrowser.ServerApplication/MainWindow.xaml.cs')
-rw-r--r--MediaBrowser.ServerApplication/MainWindow.xaml.cs120
1 files changed, 1 insertions, 119 deletions
diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs
index 4904eb0f7..0d0d2d54b 100644
--- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs
+++ b/MediaBrowser.ServerApplication/MainWindow.xaml.cs
@@ -1,19 +1,13 @@
using MediaBrowser.Common.Kernel;
using MediaBrowser.Controller;
-using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Serialization;
-using MediaBrowser.ServerApplication.Controls;
using MediaBrowser.ServerApplication.Logging;
using System;
-using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
-using System.Threading;
using System.Windows;
-using System.Windows.Controls.Primitives;
using System.Windows.Threading;
namespace MediaBrowser.ServerApplication
@@ -24,23 +18,6 @@ namespace MediaBrowser.ServerApplication
public partial class MainWindow : Window, INotifyPropertyChanged
{
/// <summary>
- /// Holds the list of new items to display when the NewItemTimer expires
- /// </summary>
- private readonly List<BaseItem> _newlyAddedItems = new List<BaseItem>();
-
- /// <summary>
- /// The amount of time to wait before showing a new item notification
- /// This allows us to group items together into one notification
- /// </summary>
- private const int NewItemDelay = 60000;
-
- /// <summary>
- /// The current new item timer
- /// </summary>
- /// <value>The new item timer.</value>
- private Timer NewItemTimer { get; set; }
-
- /// <summary>
/// The _logger
/// </summary>
private readonly ILogger _logger;
@@ -54,8 +31,6 @@ namespace MediaBrowser.ServerApplication
/// The _log manager
/// </summary>
private readonly ILogManager _logManager;
-
- private readonly ILibraryManager _libraryManager;
/// <summary>
/// Initializes a new instance of the <see cref="MainWindow" /> class.
@@ -64,7 +39,7 @@ namespace MediaBrowser.ServerApplication
/// <param name="logger">The logger.</param>
/// <param name="appHost">The app host.</param>
/// <exception cref="System.ArgumentNullException">logger</exception>
- public MainWindow(ILogManager logManager, IApplicationHost appHost, ILibraryManager libraryManager)
+ public MainWindow(ILogManager logManager, IApplicationHost appHost)
{
if (logManager == null)
{
@@ -74,7 +49,6 @@ namespace MediaBrowser.ServerApplication
_logger = logManager.GetLogger("MainWindow");
_appHost = appHost;
_logManager = logManager;
- _libraryManager = libraryManager;
InitializeComponent();
@@ -92,7 +66,6 @@ namespace MediaBrowser.ServerApplication
Instance_ConfigurationUpdated(null, EventArgs.Empty);
- Kernel.Instance.ReloadCompleted += KernelReloadCompleted;
_logManager.LoggerLoaded += LoadLogWindow;
Kernel.Instance.ConfigurationUpdated += Instance_ConfigurationUpdated;
}
@@ -124,71 +97,6 @@ namespace MediaBrowser.ServerApplication
}
/// <summary>
- /// Handles the LibraryChanged event of the Instance control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="ChildrenChangedEventArgs" /> instance containing the event data.</param>
- void Instance_LibraryChanged(object sender, ChildrenChangedEventArgs e)
- {
- var newItems = e.ItemsAdded.Where(i => !i.IsFolder).ToList();
-
- // Use a timer to prevent lots of these notifications from showing in a short period of time
- if (newItems.Count > 0)
- {
- lock (_newlyAddedItems)
- {
- _newlyAddedItems.AddRange(newItems);
-
- if (NewItemTimer == null)
- {
- NewItemTimer = new Timer(NewItemTimerCallback, null, NewItemDelay, Timeout.Infinite);
- }
- else
- {
- NewItemTimer.Change(NewItemDelay, Timeout.Infinite);
- }
- }
- }
- }
-
- /// <summary>
- /// Called when the new item timer expires
- /// </summary>
- /// <param name="state">The state.</param>
- private void NewItemTimerCallback(object state)
- {
- List<BaseItem> newItems;
-
- // Lock the list and release all resources
- lock (_newlyAddedItems)
- {
- newItems = _newlyAddedItems.ToList();
- _newlyAddedItems.Clear();
-
- NewItemTimer.Dispose();
- NewItemTimer = null;
- }
-
- // Show the notification
- if (newItems.Count == 1)
- {
- Dispatcher.InvokeAsync(() => MbTaskbarIcon.ShowCustomBalloon(new ItemUpdateNotification(_logger)
- {
- DataContext = newItems[0]
-
- }, PopupAnimation.Slide, 6000));
- }
- else if (newItems.Count > 1)
- {
- Dispatcher.InvokeAsync(() => MbTaskbarIcon.ShowCustomBalloon(new MultiItemUpdateNotification(_logger)
- {
- DataContext = newItems
-
- }, PopupAnimation.Slide, 6000));
- }
- }
-
- /// <summary>
/// Loads the log window.
/// </summary>
/// <param name="sender">The sender.</param>
@@ -228,32 +136,6 @@ namespace MediaBrowser.ServerApplication
}
/// <summary>
- /// Kernels the reload completed.
- /// </summary>
- /// <param name="sender">The sender.</param>
- /// <param name="e">The e.</param>
- void KernelReloadCompleted(object sender, EventArgs e)
- {
- _libraryManager.LibraryChanged -= Instance_LibraryChanged;
- _libraryManager.LibraryChanged += Instance_LibraryChanged;
-
- if (_appHost.IsFirstRun)
- {
- LaunchStartupWizard();
- }
- }
-
- /// <summary>
- /// Launches the startup wizard.
- /// </summary>
- private void LaunchStartupWizard()
- {
- var user = _appHost.Resolve<IUserManager>().Users.FirstOrDefault(u => u.Configuration.IsAdministrator);
-
- App.OpenDashboardPage("wizardStart.html", user);
- }
-
- /// <summary>
/// Handles the Click event of the cmdApiDocs control.
/// </summary>
/// <param name="sender">The source of the event.</param>