Added application session services, along with initial restore and tracker implementations.

This commit is contained in:
2026-08-06 02:11:47 -04:00
parent 75f820ed7b
commit c262ee4caa
13 changed files with 245 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
using Harmonia.Core.Extensions;
using Harmonia.WinUI.Caching;
using Harmonia.WinUI.Messaging;
using Harmonia.WinUI.Session;
using Harmonia.WinUI.Storage;
using Harmonia.WinUI.ViewModels;
using Microsoft.Extensions.DependencyInjection;
@@ -31,6 +32,14 @@ public partial class App : Application
services.AddSingleton<IStorageProvider, WindowsStorageProvider>();
services.AddSingleton<IMessageService, WindowsMessageService>();
services.AddSingleton<ISessionService, JsonSessionService>();
services.AddSingleton(sp => sp.GetRequiredService<ISessionService>().Session.Window);
services.AddSingleton(sp => sp.GetRequiredService<ISessionService>().Session.Player);
services.AddSingleton(sp => sp.GetRequiredService<ISessionService>().Session.Playlist);
services.AddSingleton<ISessionRestorer, SessionRestorer>();
services.AddSingleton<ISessionTracker, SessionTracker>();
services.AddHarmonia();
ServiceProvider = services.BuildServiceProvider();
@@ -45,6 +54,15 @@ public partial class App : Application
{
await ServiceProvider.InitializeHarmoniaAsync();
ISessionService sessionService = ServiceProvider.GetRequiredService<ISessionService>();
await sessionService.LoadAsync();
ISessionRestorer sessionRestorer = ServiceProvider.GetRequiredService<ISessionRestorer>();
sessionRestorer.Restore();
ISessionTracker sessionTracker = ServiceProvider.GetRequiredService<ISessionTracker>();
sessionTracker.Start();
_mainWindow = ServiceProvider.GetRequiredService<MainWindow>();
_mainWindow.Activate();
}