using Dalamud.Interface.ImGuiFileDialog; using LightlessSync.API.Data; using LightlessSync.API.Dto.Group; using LightlessSync.PlayerData.Pairs; using LightlessSync.Services.Mediator; using LightlessSync.Services.ServerConfiguration; using LightlessSync.UI; using LightlessSync.UI.Tags; using LightlessSync.WebAPI; using LightlessSync.UI.Services; using Microsoft.Extensions.Logging; namespace LightlessSync.Services; public class UiFactory { private readonly ILoggerFactory _loggerFactory; private readonly LightlessMediator _lightlessMediator; private readonly ApiController _apiController; private readonly UiSharedService _uiSharedService; private readonly PairUiService _pairUiService; private readonly ServerConfigurationManager _serverConfigManager; private readonly LightlessProfileManager _lightlessProfileManager; private readonly PerformanceCollectorService _performanceCollectorService; private readonly FileDialogManager _fileDialogManager; private readonly ProfileTagService _profileTagService; public UiFactory( ILoggerFactory loggerFactory, LightlessMediator lightlessMediator, ApiController apiController, UiSharedService uiSharedService, PairUiService pairUiService, ServerConfigurationManager serverConfigManager, LightlessProfileManager lightlessProfileManager, PerformanceCollectorService performanceCollectorService, FileDialogManager fileDialogManager, ProfileTagService profileTagService) { _loggerFactory = loggerFactory; _lightlessMediator = lightlessMediator; _apiController = apiController; _uiSharedService = uiSharedService; _pairUiService = pairUiService; _serverConfigManager = serverConfigManager; _lightlessProfileManager = lightlessProfileManager; _performanceCollectorService = performanceCollectorService; _fileDialogManager = fileDialogManager; _profileTagService = profileTagService; } public SyncshellAdminUI CreateSyncshellAdminUi(GroupFullInfoDto dto) { return new SyncshellAdminUI( _loggerFactory.CreateLogger(), _lightlessMediator, _apiController, _uiSharedService, _pairUiService, dto, _performanceCollectorService, _lightlessProfileManager, _fileDialogManager); } public StandaloneProfileUi CreateStandaloneProfileUi(Pair pair) { return new StandaloneProfileUi( _loggerFactory.CreateLogger(), _lightlessMediator, _uiSharedService, _serverConfigManager, _profileTagService, _lightlessProfileManager, _pairUiService, pair, pair.UserData, null, false, null, _performanceCollectorService); } public StandaloneProfileUi CreateStandaloneProfileUi(UserData userData) { return new StandaloneProfileUi( _loggerFactory.CreateLogger(), _lightlessMediator, _uiSharedService, _serverConfigManager, _profileTagService, _lightlessProfileManager, _pairUiService, null, userData, null, false, null, _performanceCollectorService); } public StandaloneProfileUi CreateLightfinderProfileUi(UserData userData, string hashedCid) { return new StandaloneProfileUi( _loggerFactory.CreateLogger(), _lightlessMediator, _uiSharedService, _serverConfigManager, _profileTagService, _lightlessProfileManager, _pairUiService, null, userData, null, true, hashedCid, _performanceCollectorService); } public StandaloneProfileUi CreateStandaloneGroupProfileUi(GroupFullInfoDto groupInfo) { return new StandaloneProfileUi( _loggerFactory.CreateLogger(), _lightlessMediator, _uiSharedService, _serverConfigManager, _profileTagService, _lightlessProfileManager, _pairUiService, null, null, groupInfo, false, null, _performanceCollectorService); } public PermissionWindowUI CreatePermissionPopupUi(Pair pair) { return new PermissionWindowUI( _loggerFactory.CreateLogger(), pair, _lightlessMediator, _uiSharedService, _apiController, _performanceCollectorService); } }