diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-13 10:48:35 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-13 10:48:35 -0500 |
| commit | d00178d8f0002638d47174c0bd73ebcf1ac5f6fd (patch) | |
| tree | 43c0cf805efb5524cc7faa9f795a9edd52768014 /MediaBrowser.Common.Implementations/BaseApplicationHost.cs | |
| parent | 065a8ea21e956e148cb1637c669895bbb1b1af5b (diff) | |
support progress bar while splash window is up
Diffstat (limited to 'MediaBrowser.Common.Implementations/BaseApplicationHost.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/BaseApplicationHost.cs | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs index 373ca30e8..929745a94 100644 --- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs +++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs @@ -9,6 +9,7 @@ using MediaBrowser.Common.Implementations.Updates; using MediaBrowser.Common.IO; using MediaBrowser.Common.Net; using MediaBrowser.Common.Plugins; +using MediaBrowser.Common.Progress; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Security; using MediaBrowser.Common.Updates; @@ -180,7 +181,7 @@ namespace MediaBrowser.Common.Implementations /// Inits this instance. /// </summary> /// <returns>Task.</returns> - public virtual async Task Init() + public virtual async Task Init(IProgress<double> progress) { try { @@ -191,38 +192,39 @@ namespace MediaBrowser.Common.Implementations { // Failing under mono } + progress.Report(1); JsonSerializer = CreateJsonSerializer(); IsFirstRun = !ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted; + progress.Report(2); Logger = LogManager.GetLogger("App"); LogManager.LogSeverity = ConfigurationManager.CommonConfiguration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info; - - OnLoggerLoaded(); + progress.Report(3); DiscoverTypes(); + progress.Report(14); Logger.Info("Version {0} initializing", ApplicationVersion); SetHttpLimit(); + progress.Report(15); + + var innerProgress = new ActionableProgress<double>(); + innerProgress.RegisterAction(p => progress.Report((.8 * p) + 15)); - await RegisterResources().ConfigureAwait(false); + await RegisterResources(innerProgress).ConfigureAwait(false); FindParts(); + progress.Report(95); await InstallIsoMounters(CancellationToken.None).ConfigureAwait(false); - } - - /// <summary> - /// Called when [logger loaded]. - /// </summary> - protected virtual void OnLoggerLoaded() - { + progress.Report(100); } protected virtual IJsonSerializer CreateJsonSerializer() @@ -348,7 +350,7 @@ namespace MediaBrowser.Common.Implementations /// Registers resources that classes will depend on /// </summary> /// <returns>Task.</returns> - protected virtual Task RegisterResources() + protected virtual Task RegisterResources(IProgress<double> progress) { return Task.Run(() => { |
