1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
2022-07-29 17:04:13 +01:00

51 lines
1.5 KiB
C#

using Artemis.Core.Services;
using Artemis.UI.Linux.Providers.Input;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using ReactiveUI;
using Ninject;
using Avalonia.Controls.ApplicationLifetimes;
namespace Artemis.UI.Linux
{
public class App : Application
{
private StandardKernel? _kernel;
private ApplicationStateManager? _applicationStateManager;
public override void Initialize()
{
_kernel = ArtemisBootstrapper.Bootstrap(this);
Program.CreateLogger(_kernel);
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
RegisterProviders();
}
public override void OnFrameworkInitializationCompleted()
{
if (Design.IsDesignMode)
return;
ArtemisBootstrapper.Initialize();
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
_applicationStateManager = new ApplicationStateManager(_kernel!, desktop.Args);
}
private void RegisterProviders()
{
IInputService inputService = _kernel.Get<IInputService>();
try
{
inputService.AddInputProvider(_kernel.Get<LinuxInputProvider>());
}
catch
{
//TODO: handle not having permissions for the input file.
}
}
}
}