1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
RobertBeekman 551921db9f
Storage - Replace LiteDB with SQLite + EF Core (#843)
Storage - Added LiteDB to SQLite migration
UI - Try to die a bit more gracefully
Core - Delay start watching plugins for hot reload after initializing
UI - Simplify category management logic
UI - Avoid crash during profile icon load
Storage - Fix entry metadata retrieval
2024-03-13 20:19:21 +01:00

54 lines
1.6 KiB
C#

using System;
using Artemis.Core.Services;
using Artemis.Storage.Legacy;
using Artemis.UI.Linux.DryIoc;
using Artemis.UI.Linux.Providers.Input;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI;
using DryIoc;
using ReactiveUI;
namespace Artemis.UI.Linux;
public class App : Application
{
private ApplicationStateManager? _applicationStateManager;
private IContainer? _container;
public override void Initialize()
{
_container = ArtemisBootstrapper.Bootstrap(this, c => c.RegisterProviders());
Program.CreateLogger(_container);
LegacyMigrationService.MigrateToSqlite(_container);
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is not IClassicDesktopStyleApplicationLifetime desktop || Design.IsDesignMode)
return;
_applicationStateManager = new ApplicationStateManager(_container!, desktop.Args ?? Array.Empty<string>());
ArtemisBootstrapper.Initialize();
RegisterProviders();
}
private void RegisterProviders()
{
IInputService inputService = _container.Resolve<IInputService>();
try
{
inputService.AddInputProvider(_container.Resolve<InputProvider>(LinuxInputProvider.Id));
}
catch
{
//TODO: handle not having permissions for the input file.
}
}
}