add DI, start implementing mediator pattern instead of events

This commit is contained in:
rootdarkarchon
2023-01-31 00:05:47 +01:00
parent 7f2bb9aff7
commit 5e7beb8518
15 changed files with 190 additions and 240 deletions

View File

@@ -9,7 +9,7 @@ using MareSynchronos.FileCache;
using Dalamud.Interface;
using MareSynchronos.Managers;
using MareSynchronos.MareConfiguration;
using MareSynchronos.Delegates;
using MareSynchronos.Mediator;
namespace MareSynchronos.UI;
@@ -19,11 +19,10 @@ internal class IntroUi : Window, IDisposable
private readonly ConfigurationService _configService;
private readonly PeriodicFileScanner _fileCacheManager;
private readonly ServerConfigurationManager _serverConfigurationManager;
private readonly MareMediator _mareMediator;
private readonly WindowSystem _windowSystem;
private bool _readFirstPage;
public event VoidDelegate? SwitchToMainUi;
private string[]? _tosParagraphs;
private Task? _timeoutTask;
@@ -40,7 +39,7 @@ internal class IntroUi : Window, IDisposable
}
public IntroUi(WindowSystem windowSystem, UiShared uiShared, ConfigurationService configService,
PeriodicFileScanner fileCacheManager, ServerConfigurationManager serverConfigurationManager) : base("Mare Synchronos Setup")
PeriodicFileScanner fileCacheManager, ServerConfigurationManager serverConfigurationManager, MareMediator mareMediator) : base("Mare Synchronos Setup")
{
Logger.Verbose("Creating " + nameof(IntroUi));
@@ -48,6 +47,7 @@ internal class IntroUi : Window, IDisposable
_configService = configService;
_fileCacheManager = fileCacheManager;
_serverConfigurationManager = serverConfigurationManager;
_mareMediator = mareMediator;
_windowSystem = windowSystem;
IsOpen = false;
@@ -59,6 +59,9 @@ internal class IntroUi : Window, IDisposable
GetToSLocalization();
_mareMediator.Subscribe<SwitchToMainUiMessage>(this, (_) => IsOpen = false);
_mareMediator.Subscribe<SwitchToIntroUiMessage>(this, (_) => IsOpen = true);
_windowSystem.AddWindow(this);
}
@@ -239,7 +242,7 @@ internal class IntroUi : Window, IDisposable
}
else
{
SwitchToMainUi?.Invoke();
_mareMediator.Publish(new SwitchToMainUiMessage());
IsOpen = false;
}
}