diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-03 00:20:14 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-03 00:20:14 -0500 |
| commit | f26a3e3c615474eb9f64f005448bb8ce4b08e13f (patch) | |
| tree | cba34c02c20aa6f46cec2b04036d4ff53496ae56 /MediaBrowser.ServerApplication/MainWindow.xaml.cs | |
| parent | 1ffc19a9a02ac7dc8bda4faecb793e760284ee5e (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.cs | 120 |
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> |
