From f3a6c7b5b96bfeb28f943ab230c1158d38d001ae Mon Sep 17 00:00:00 2001 From: cake Date: Sun, 16 Nov 2025 07:57:59 +0100 Subject: [PATCH] Fixed many warnings --- LightlessSync/UI/BroadcastUI.cs | 6 +- LightlessSync/UI/CompactUI.cs | 4 +- LightlessSync/UI/DataAnalysisUi.cs | 6 +- LightlessSync/UI/DrawEntityFactory.cs | 9 +- LightlessSync/UI/DtrEntry.cs | 2 +- LightlessSync/UI/EditProfileUi.cs | 6 +- LightlessSync/UI/JoinSyncshellUI.cs | 1 - LightlessSync/UI/LightlessNotificationUI.cs | 64 +++++------ LightlessSync/UI/SettingsUi.cs | 120 ++++++++++---------- LightlessSync/UI/SyncshellAdminUI.cs | 6 +- LightlessSync/UI/SyncshellFinderUI.cs | 4 +- LightlessSync/UI/UIColors.cs | 6 +- LightlessSync/UI/UISharedService.cs | 4 +- LightlessSync/Utils/Crypto.cs | 2 +- 14 files changed, 112 insertions(+), 128 deletions(-) diff --git a/LightlessSync/UI/BroadcastUI.cs b/LightlessSync/UI/BroadcastUI.cs index 60e064f..3dc1b89 100644 --- a/LightlessSync/UI/BroadcastUI.cs +++ b/LightlessSync/UI/BroadcastUI.cs @@ -192,7 +192,7 @@ namespace LightlessSync.UI ImGui.PopStyleVar(); ImGuiHelpers.ScaledDummy(3f); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); if (_configService.Current.BroadcastEnabled) { @@ -288,7 +288,7 @@ namespace LightlessSync.UI _uiSharedService.MediumText("Syncshell Finder", UIColors.Get("PairBlue")); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); ImGui.PushTextWrapPos(); ImGui.Text("Allow your owned Syncshell to be indexed by the Nearby Syncshell Finder."); @@ -296,7 +296,7 @@ namespace LightlessSync.UI ImGui.PopTextWrapPos(); ImGuiHelpers.ScaledDummy(0.2f); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); bool ShellFinderEnabled = _configService.Current.SyncshellFinderEnabled; bool isBroadcasting = _broadcastService.IsBroadcasting; diff --git a/LightlessSync/UI/CompactUI.cs b/LightlessSync/UI/CompactUI.cs index 723d3ae..1d035e1 100644 --- a/LightlessSync/UI/CompactUI.cs +++ b/LightlessSync/UI/CompactUI.cs @@ -223,7 +223,7 @@ public class CompactUi : WindowMediatorSubscriberBase } using (ImRaii.PushId("header")) DrawUIDHeader(); - _uiSharedService.RoundedSeparator(UIColors.Get("LightlessPurple"), 2.5f, 1f, 12f); + UiSharedService.RoundedSeparator(UIColors.Get("LightlessPurple"), 2.5f, 1f, 12f); using (ImRaii.PushId("serverstatus")) DrawServerStatus(); ImGui.Separator(); @@ -540,7 +540,7 @@ public class CompactUi : WindowMediatorSubscriberBase ImGui.PopStyleColor(); ImGuiHelpers.ScaledDummy(0.2f); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); if (_configService.Current.BroadcastEnabled) { diff --git a/LightlessSync/UI/DataAnalysisUi.cs b/LightlessSync/UI/DataAnalysisUi.cs index 5b750f3..cd13515 100644 --- a/LightlessSync/UI/DataAnalysisUi.cs +++ b/LightlessSync/UI/DataAnalysisUi.cs @@ -581,10 +581,10 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase ImGui.TableNextRow(); ImGui.TableNextColumn(); ImGui.TextUnformatted($"{kvp.Key} size (compressed for up/download only):"); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TableNextColumn(); ImGui.TextUnformatted(UiSharedService.ByteToString(kvp.Value.Sum(c => c.Value.CompressedSize))); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TableNextColumn(); var vramUsage = groupedfiles.SingleOrDefault(v => string.Equals(v.Key, "tex", StringComparison.Ordinal)); @@ -651,7 +651,7 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase ImGui.PopStyleVar(2); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); _uiSharedService.MediumText("Selected file:", UIColors.Get("LightlessBlue")); ImGui.SameLine(); diff --git a/LightlessSync/UI/DrawEntityFactory.cs b/LightlessSync/UI/DrawEntityFactory.cs index d1410ad..c53af92 100644 --- a/LightlessSync/UI/DrawEntityFactory.cs +++ b/LightlessSync/UI/DrawEntityFactory.cs @@ -7,14 +7,12 @@ using LightlessSync.Services.ServerConfiguration; using LightlessSync.UI.Components; using LightlessSync.UI.Handlers; using LightlessSync.WebAPI; -using Microsoft.Extensions.Logging; using System.Collections.Immutable; namespace LightlessSync.UI; public class DrawEntityFactory { - private readonly ILogger _logger; private readonly ApiController _apiController; private readonly LightlessMediator _mediator; private readonly SelectPairForTagUi _selectPairForTagUi; @@ -25,19 +23,16 @@ public class DrawEntityFactory private readonly SelectTagForPairUi _selectTagForPairUi; private readonly RenamePairTagUi _renamePairTagUi; private readonly SelectTagForSyncshellUi _selectTagForSyncshellUi; - private readonly RenameSyncshellTagUi _renameSyncshellTagUi; - private readonly SelectSyncshellForTagUi _selectSyncshellForTagUi; private readonly TagHandler _tagHandler; private readonly IdDisplayHandler _uidDisplayHandler; - public DrawEntityFactory(ILogger logger, ApiController apiController, IdDisplayHandler uidDisplayHandler, + public DrawEntityFactory(ApiController apiController, IdDisplayHandler uidDisplayHandler, SelectTagForPairUi selectTagForPairUi, RenamePairTagUi renamePairTagUi, LightlessMediator mediator, TagHandler tagHandler, SelectPairForTagUi selectPairForTagUi, ServerConfigurationManager serverConfigurationManager, UiSharedService uiSharedService, PlayerPerformanceConfigService playerPerformanceConfigService, CharaDataManager charaDataManager, SelectTagForSyncshellUi selectTagForSyncshellUi, RenameSyncshellTagUi renameSyncshellTagUi, SelectSyncshellForTagUi selectSyncshellForTagUi) { - _logger = logger; _apiController = apiController; _uidDisplayHandler = uidDisplayHandler; _selectTagForPairUi = selectTagForPairUi; @@ -50,8 +45,6 @@ public class DrawEntityFactory _playerPerformanceConfigService = playerPerformanceConfigService; _charaDataManager = charaDataManager; _selectTagForSyncshellUi = selectTagForSyncshellUi; - _renameSyncshellTagUi = renameSyncshellTagUi; - _selectSyncshellForTagUi = selectSyncshellForTagUi; } public DrawFolderGroup CreateDrawGroupFolder(GroupFullInfoDto groupFullInfoDto, diff --git a/LightlessSync/UI/DtrEntry.cs b/LightlessSync/UI/DtrEntry.cs index 17bc871..680aa29 100644 --- a/LightlessSync/UI/DtrEntry.cs +++ b/LightlessSync/UI/DtrEntry.cs @@ -445,7 +445,7 @@ public sealed class DtrEntry : IDisposable, IHostedService return ($"{icon} OFF", colors, tooltip.ToString()); } - private (string, Colors, string) FormatTooltip(string title, IEnumerable names, string icon, Colors color) + private static (string, Colors, string) FormatTooltip(string title, IEnumerable names, string icon, Colors color) { var list = names.Where(x => !string.IsNullOrEmpty(x)).ToList(); var tooltip = new StringBuilder() diff --git a/LightlessSync/UI/EditProfileUi.cs b/LightlessSync/UI/EditProfileUi.cs index 880a0d2..58db2ff 100644 --- a/LightlessSync/UI/EditProfileUi.cs +++ b/LightlessSync/UI/EditProfileUi.cs @@ -171,7 +171,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase ImGui.Checkbox("Is NSFW", ref nsfw); ImGui.EndDisabled(); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.EndTabItem(); } @@ -293,7 +293,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase ImGui.BeginDisabled(); } - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); _uiSharedService.MediumText("Colored UID", UIColors.Get("LightlessPurple")); ImGui.Dummy(new Vector2(5)); @@ -377,7 +377,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase ImGui.EndDisabled(); ImGui.Dummy(new Vector2(5)); - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); if (!hasVanity) ImGui.EndDisabled(); diff --git a/LightlessSync/UI/JoinSyncshellUI.cs b/LightlessSync/UI/JoinSyncshellUI.cs index b02a84e..ffa4e23 100644 --- a/LightlessSync/UI/JoinSyncshellUI.cs +++ b/LightlessSync/UI/JoinSyncshellUI.cs @@ -1,5 +1,4 @@ using Dalamud.Bindings.ImGui; -using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; using LightlessSync.API.Data.Enum; diff --git a/LightlessSync/UI/LightlessNotificationUI.cs b/LightlessSync/UI/LightlessNotificationUI.cs index 8cb6922..64fe3a2 100644 --- a/LightlessSync/UI/LightlessNotificationUI.cs +++ b/LightlessSync/UI/LightlessNotificationUI.cs @@ -1,8 +1,6 @@ using Dalamud.Interface; -using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; using Dalamud.Interface.Utility.Raii; -using Dalamud.Interface.Windowing; using LightlessSync.LightlessConfiguration; using LightlessSync.LightlessConfiguration.Models; using LightlessSync.Services; @@ -27,11 +25,11 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase private const float _titleMessageSpacing = 4f; private const float _actionButtonSpacing = 8f; - private readonly List _notifications = new(); + private readonly List _notifications = []; private readonly object _notificationLock = new(); private readonly LightlessConfigService _configService; - private readonly Dictionary _notificationYOffsets = new(); - private readonly Dictionary _notificationTargetYOffsets = new(); + private readonly Dictionary _notificationYOffsets = []; + private readonly Dictionary _notificationTargetYOffsets = []; public LightlessNotificationUi(ILogger logger, LightlessMediator mediator, PerformanceCollectorService performanceCollector, LightlessConfigService configService) : base(logger, mediator, "Lightless Notifications##LightlessNotifications", performanceCollector) @@ -68,7 +66,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase { lock (_notificationLock) { - var existingNotification = _notifications.FirstOrDefault(n => n.Id == notification.Id); + var existingNotification = _notifications.FirstOrDefault(n => string.Equals(n.Id, notification.Id, StringComparison.Ordinal)); if (existingNotification != null) { UpdateExistingNotification(existingNotification, notification); @@ -103,7 +101,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase { lock (_notificationLock) { - var notification = _notifications.FirstOrDefault(n => n.Id == id); + var notification = _notifications.FirstOrDefault(n => string.Equals(n.Id, id, StringComparison.Ordinal)); if (notification != null) { StartOutAnimation(notification); @@ -122,13 +120,13 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private void StartOutAnimation(LightlessNotification notification) + private static void StartOutAnimation(LightlessNotification notification) { notification.IsAnimatingOut = true; notification.IsAnimatingIn = false; } - private bool ShouldRemoveNotification(LightlessNotification notification) => + private static bool ShouldRemoveNotification(LightlessNotification notification) => notification.IsAnimatingOut && notification.AnimationProgress <= 0.01f; protected override void DrawInternal() @@ -185,7 +183,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase ImGui.SetCursorPosY(startY + yOffset); } - DrawNotification(notification, i); + DrawNotification(notification); } } @@ -304,7 +302,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return corner == NotificationCorner.Left ? new Vector2(-distance, 0) : new Vector2(distance, 0); } - private void DrawNotification(LightlessNotification notification, int index) + private void DrawNotification(LightlessNotification notification) { var alpha = notification.AnimationProgress; if (alpha <= 0f) return; @@ -339,7 +337,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase var bgColor = CalculateBackgroundColor(alpha, ImGui.IsWindowHovered()); var accentColor = GetNotificationAccentColor(notification.Type); accentColor.W *= alpha; - + DrawShadow(drawList, windowPos, windowSize, alpha); HandleClickToDismiss(notification); DrawBackground(drawList, windowPos, windowSize, bgColor); @@ -370,7 +368,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return bgColor; } - private void DrawShadow(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, float alpha) + private static void DrawShadow(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, float alpha) { var shadowOffset = new Vector2(1f, 1f); var shadowColor = new Vector4(0f, 0f, 0f, 0.4f * alpha); @@ -394,7 +392,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private void DrawBackground(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, Vector4 bgColor) + private static void DrawBackground(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, Vector4 bgColor) { drawList.AddRectFilled( windowPos, @@ -431,14 +429,14 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase ); } - private void DrawDurationProgressBar(LightlessNotification notification, float alpha, Vector2 windowPos, Vector2 windowSize, ImDrawListPtr drawList) + private static void DrawDurationProgressBar(LightlessNotification notification, float alpha, Vector2 windowPos, Vector2 windowSize, ImDrawListPtr drawList) { var progress = CalculateDurationProgress(notification); var progressBarColor = UIColors.Get("LightlessBlue"); var progressHeight = 2f; var progressY = windowPos.Y + windowSize.Y - progressHeight; var progressWidth = windowSize.X * progress; - + DrawProgressBackground(drawList, windowPos, windowSize, progressY, progressHeight, progressBarColor, alpha); if (progress > 0) @@ -447,7 +445,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private void DrawDownloadProgressBar(LightlessNotification notification, float alpha, Vector2 windowPos, Vector2 windowSize, ImDrawListPtr drawList) + private static void DrawDownloadProgressBar(LightlessNotification notification, float alpha, Vector2 windowPos, Vector2 windowSize, ImDrawListPtr drawList) { var progress = Math.Clamp(notification.Progress, 0f, 1f); var progressBarColor = UIColors.Get("LightlessGreen"); @@ -455,7 +453,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase // Position above the duration bar (2px duration bar + 1px spacing) var progressY = windowPos.Y + windowSize.Y - progressHeight - 3f; var progressWidth = windowSize.X * progress; - + DrawProgressBackground(drawList, windowPos, windowSize, progressY, progressHeight, progressBarColor, alpha); if (progress > 0) @@ -464,14 +462,14 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private float CalculateDurationProgress(LightlessNotification notification) + private static float CalculateDurationProgress(LightlessNotification notification) { // Calculate duration timer progress var elapsed = DateTime.UtcNow - notification.CreatedAt; return Math.Min(1.0f, (float)(elapsed.TotalSeconds / notification.Duration.TotalSeconds)); } - private void DrawProgressBackground(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, float progressY, float progressHeight, Vector4 progressBarColor, float alpha) + private static void DrawProgressBackground(ImDrawListPtr drawList, Vector2 windowPos, Vector2 windowSize, float progressY, float progressHeight, Vector4 progressBarColor, float alpha) { var bgProgressColor = new Vector4(progressBarColor.X * 0.3f, progressBarColor.Y * 0.3f, progressBarColor.Z * 0.3f, 0.5f * alpha); drawList.AddRectFilled( @@ -482,7 +480,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase ); } - private void DrawProgressForeground(ImDrawListPtr drawList, Vector2 windowPos, float progressY, float progressHeight, float progressWidth, Vector4 progressBarColor, float alpha) + private static void DrawProgressForeground(ImDrawListPtr drawList, Vector2 windowPos, float progressY, float progressHeight, float progressWidth, Vector4 progressBarColor, float alpha) { var progressColor = progressBarColor; progressColor.W *= alpha; @@ -512,13 +510,13 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private float CalculateContentWidth(float windowWidth) => + private static float CalculateContentWidth(float windowWidth) => windowWidth - (_contentPaddingX * 2); - private bool HasActions(LightlessNotification notification) => + private static bool HasActions(LightlessNotification notification) => notification.Actions.Count > 0; - private void PositionActionsAtBottom(float windowHeight) + private static void PositionActionsAtBottom(float windowHeight) { var actionHeight = ImGui.GetFrameHeight(); var bottomY = windowHeight - _contentPaddingY - actionHeight; @@ -546,7 +544,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return $"[{timestamp}] {notification.Title}"; } - private float DrawWrappedText(string text, float wrapWidth) + private static float DrawWrappedText(string text, float wrapWidth) { ImGui.PushTextWrapPos(ImGui.GetCursorPosX() + wrapWidth); var startY = ImGui.GetCursorPosY(); @@ -556,7 +554,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return height; } - private void DrawMessage(LightlessNotification notification, Vector2 contentPos, float contentWidth, float titleHeight, float alpha) + private static void DrawMessage(LightlessNotification notification, Vector2 contentPos, float contentWidth, float titleHeight, float alpha) { if (string.IsNullOrEmpty(notification.Message)) return; @@ -591,13 +589,13 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private float CalculateActionButtonWidth(int actionCount, float availableWidth) + private static float CalculateActionButtonWidth(int actionCount, float availableWidth) { var totalSpacing = (actionCount - 1) * _actionButtonSpacing; return (availableWidth - totalSpacing) / actionCount; } - private void PositionActionButton(int index, float startX, float buttonWidth) + private static void PositionActionButton(int index, float startX, float buttonWidth) { var xPosition = startX + index * (buttonWidth + _actionButtonSpacing); ImGui.SetCursorPosX(xPosition); @@ -625,7 +623,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase if (action.Icon != FontAwesomeIcon.None) { - buttonPressed = DrawIconTextButton(action.Icon, action.Label, buttonWidth, alpha); + buttonPressed = DrawIconTextButton(action.Icon, action.Label, buttonWidth); } else { @@ -650,10 +648,10 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase } } - private bool DrawIconTextButton(FontAwesomeIcon icon, string text, float width, float alpha) + private static bool DrawIconTextButton(FontAwesomeIcon icon, string text, float width) { var drawList = ImGui.GetWindowDrawList(); - var cursorPos = ImGui.GetCursorScreenPos(); + ImGui.GetCursorScreenPos(); var frameHeight = ImGui.GetFrameHeight(); Vector2 iconSize; @@ -729,7 +727,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return ImGui.CalcTextSize(titleText, true, contentWidth).Y; } - private float CalculateMessageHeight(LightlessNotification notification, float contentWidth) + private static float CalculateMessageHeight(LightlessNotification notification, float contentWidth) { if (string.IsNullOrEmpty(notification.Message)) return 0f; @@ -737,7 +735,7 @@ public class LightlessNotificationUi : WindowMediatorSubscriberBase return 4f + messageHeight; } - private Vector4 GetNotificationAccentColor(NotificationType type) + private static Vector4 GetNotificationAccentColor(NotificationType type) { return type switch { diff --git a/LightlessSync/UI/SettingsUi.cs b/LightlessSync/UI/SettingsUi.cs index 7cdeb38..60de533 100644 --- a/LightlessSync/UI/SettingsUi.cs +++ b/LightlessSync/UI/SettingsUi.cs @@ -539,7 +539,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } } - private bool DrawStyleResetButton(string key, bool hasOverride, string? tooltipOverride = null) + private static bool DrawStyleResetButton(string key, bool hasOverride, string? tooltipOverride = null) { using var id = ImRaii.PushId($"reset-{key}"); using var disabled = ImRaii.Disabled(!hasOverride); @@ -663,7 +663,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText("Controls how many uploads can run at once."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); if (ImGui.Checkbox("Enable Pair Download Limiter", ref limitPairApplications)) { @@ -710,7 +710,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.TextColored(ImGuiColors.DalamudGrey, "Pair apply limiter is disabled."); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 2f); if (ImGui.Checkbox("Use Alternative Upload Method", ref useAlternativeUpload)) { @@ -826,13 +826,10 @@ public class SettingsUi : WindowMediatorSubscriberBase using var tree = ImRaii.TreeNode("Speed Test to Servers"); if (tree) { - if (_downloadServersTask == null || ((_downloadServersTask?.IsCompleted ?? false) && - (!_downloadServersTask?.IsCompletedSuccessfully ?? false))) + if ((_downloadServersTask == null || ((_downloadServersTask?.IsCompleted ?? false) && + (!_downloadServersTask?.IsCompletedSuccessfully ?? false))) && _uiShared.IconTextButton(FontAwesomeIcon.GroupArrowsRotate, "Update Download Server List")) { - if (_uiShared.IconTextButton(FontAwesomeIcon.GroupArrowsRotate, "Update Download Server List")) - { - _downloadServersTask = GetDownloadServerList(); - } + _downloadServersTask = GetDownloadServerList(); } if (_downloadServersTask != null && _downloadServersTask.IsCompleted && @@ -1063,9 +1060,9 @@ public class SettingsUi : WindowMediatorSubscriberBase .DeserializeAsync>(await result.Content.ReadAsStreamAsync().ConfigureAwait(false)) .ConfigureAwait(false); } - catch (Exception ex) + catch (Exception) { - _logger.LogWarning(ex, "Failed to get download server list"); + _logger.LogWarning("Failed to get download server list"); throw; } } @@ -1146,7 +1143,7 @@ public class SettingsUi : WindowMediatorSubscriberBase UiSharedService.TooltipSeparator + "Keeping LOD enabled can lead to more crashes. Use at your own risk."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessYellow"), 2f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow"), 2f); } private void DrawFileStorageSettings() @@ -1348,7 +1345,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } } - _uiShared.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); ImGui.TreePop(); } @@ -1380,7 +1377,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } catch (IOException ex) { - _logger.LogWarning(ex, $"Could not delete file {file} because it is in use."); + _logger.LogWarning(ex, "Could not delete file {file} because it is in use.", file); } } }); @@ -1398,7 +1395,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.EndDisabled(); ImGui.Unindent(); - _uiShared.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); ImGui.TreePop(); } } @@ -1411,8 +1408,6 @@ public class SettingsUi : WindowMediatorSubscriberBase } _lastTab = "General"; - //UiSharedService.FontText("Experimental", _uiShared.UidFont); - //ImGui.Separator(); _uiShared.UnderlinedBigText("General Settings", UIColors.Get("LightlessBlue")); ImGui.Dummy(new Vector2(10)); @@ -1449,7 +1444,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGuiColors.DalamudRed); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -1477,7 +1472,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText( "This will automatically populate user notes using the first encountered player name if the note was not set prior"); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -1545,7 +1540,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -1585,7 +1580,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } _uiShared.DrawHelpText("When enabled, Lightfinder will automatically turn on after reconnecting to the Lightless server."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Lightfinder Nameplate Colors"); if (ImGui.BeginTable("##LightfinderColorTable", 3, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.SizingFixedFit)) @@ -1641,7 +1636,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.Spacing(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Lightfinder Info Bar"); if (ImGui.Checkbox("Show Lightfinder status in Server info bar", ref showLightfinderInDtr)) @@ -1737,7 +1732,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } ImGui.EndDisabled(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Alignment"); ImGui.BeginDisabled(autoAlign); @@ -1862,7 +1857,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Visibility"); var showOwn = _configService.Current.LightfinderLabelShowOwn; @@ -1900,7 +1895,7 @@ public class SettingsUi : WindowMediatorSubscriberBase } _uiShared.DrawHelpText("Toggles Lightfinder label when no nameplate(s) is visible."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Label"); var useIcon = _configService.Current.LightfinderLabelUseIcon; @@ -2006,7 +2001,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _lightfinderIconPresetIndex = -1; } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -2094,7 +2089,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.Spacing(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Server Info Bar Colors"); @@ -2146,7 +2141,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.Spacing(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("Nameplate Colors"); @@ -2199,7 +2194,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.Spacing(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurpleDefault"), 1.5f); ImGui.TextUnformatted("UI Theme"); @@ -2221,7 +2216,7 @@ public class SettingsUi : WindowMediatorSubscriberBase DrawThemeOverridesSection(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -2319,7 +2314,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _configService.Save(); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -2362,7 +2357,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText("Will show profiles that have the NSFW tag enabled"); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } ImGui.Separator(); @@ -2444,7 +2439,7 @@ public class SettingsUi : WindowMediatorSubscriberBase + "Default: 165 thousand"); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -2548,7 +2543,7 @@ public class SettingsUi : WindowMediatorSubscriberBase + "Default: 250 thousand"); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -2696,7 +2691,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.EndPopup(); } - _uiShared.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); ImGui.TreePop(); } @@ -3274,15 +3269,13 @@ public class SettingsUi : WindowMediatorSubscriberBase private int _lastSelectedServerIndex = -1; private Task<(bool Success, bool PartialSuccess, string Result)>? _secretKeysConversionTask = null; - private CancellationTokenSource _secretKeysConversionCts = new CancellationTokenSource(); + private CancellationTokenSource _secretKeysConversionCts = new(); private async Task<(bool Success, bool partialSuccess, string Result)> ConvertSecretKeysToUIDs( ServerStorage serverStorage, CancellationToken token) { - List failedConversions = serverStorage.Authentications - .Where(u => u.SecretKeyIdx == -1 && string.IsNullOrEmpty(u.UID)).ToList(); - List conversionsToAttempt = serverStorage.Authentications - .Where(u => u.SecretKeyIdx != -1 && string.IsNullOrEmpty(u.UID)).ToList(); + List failedConversions = [.. serverStorage.Authentications.Where(u => u.SecretKeyIdx == -1 && string.IsNullOrEmpty(u.UID))]; + List conversionsToAttempt = [.. serverStorage.Authentications.Where(u => u.SecretKeyIdx != -1 && string.IsNullOrEmpty(u.UID))]; List successfulConversions = []; Dictionary> secretKeyMapping = new(StringComparer.Ordinal); foreach (var authEntry in conversionsToAttempt) @@ -3352,6 +3345,7 @@ public class SettingsUi : WindowMediatorSubscriberBase sb.Append(string.Join(", ", failedConversions.Select(k => k.CharacterName))); } + _secretKeysConversionCts.Dispose(); return (true, failedConversions.Count != 0, sb.ToString()); } @@ -3720,7 +3714,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.Unindent(); } - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -3762,7 +3756,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText("Click anywhere on a notification to dismiss it. Notifications with action buttons (like pair requests) are excluded."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -3925,7 +3919,7 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGui.SetTooltip("Right click to reset to default (3)."); _uiShared.DrawHelpText("Width of the colored accent bar on the left side."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } } @@ -4020,7 +4014,7 @@ public class SettingsUi : WindowMediatorSubscriberBase if (ImGui.IsItemHovered()) ImGui.SetTooltip("Right click to reset to default (20)."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -4035,7 +4029,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText( "Configure which sounds play for each notification type. Use the play button to preview sounds."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -4083,7 +4077,7 @@ public class SettingsUi : WindowMediatorSubscriberBase "Only show online notifications for pairs where you have set an individual note."); ImGui.Unindent(); - _uiShared.ColoredSeparator(UIColors.Get("LightlessGreen"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessGreen"), 1.5f); ImGui.TreePop(); } @@ -4099,7 +4093,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText( "When you receive a pair request, show Accept/Decline buttons in the notification."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } @@ -4115,7 +4109,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText( "When a player exceeds performance thresholds or is auto-paused, show Pause/Unpause buttons in the notification."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessOrange"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessOrange"), 1.5f); ImGui.TreePop(); } @@ -4130,7 +4124,7 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText("Disable warning notifications for missing optional plugins."); - _uiShared.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); ImGui.TreePop(); } @@ -4140,32 +4134,32 @@ public class SettingsUi : WindowMediatorSubscriberBase } } - private NotificationLocation[] GetLightlessNotificationLocations() + private static NotificationLocation[] GetLightlessNotificationLocations() { - return new[] - { + return + [ NotificationLocation.LightlessUi, NotificationLocation.Chat, NotificationLocation.ChatAndLightlessUi, NotificationLocation.Nowhere - }; + ]; } - private NotificationLocation[] GetDownloadNotificationLocations() + private static NotificationLocation[] GetDownloadNotificationLocations() { - return new[] - { + return + [ NotificationLocation.LightlessUi, NotificationLocation.TextOverlay, NotificationLocation.Nowhere - }; + ]; } - private NotificationLocation[] GetClassicNotificationLocations() + private static NotificationLocation[] GetClassicNotificationLocations() { - return new[] - { + return + [ NotificationLocation.Toast, NotificationLocation.Chat, NotificationLocation.Both, NotificationLocation.Nowhere - }; + ]; } - private string GetNotificationLocationLabel(NotificationLocation location) + private static string GetNotificationLocationLabel(NotificationLocation location) { return location switch { @@ -4180,7 +4174,7 @@ public class SettingsUi : WindowMediatorSubscriberBase }; } - private string GetNotificationCornerLabel(NotificationCorner corner) + private static string GetNotificationCornerLabel(NotificationCorner corner) { return corner switch { diff --git a/LightlessSync/UI/SyncshellAdminUI.cs b/LightlessSync/UI/SyncshellAdminUI.cs index 7497e78..c4cb28c 100644 --- a/LightlessSync/UI/SyncshellAdminUI.cs +++ b/LightlessSync/UI/SyncshellAdminUI.cs @@ -552,7 +552,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase } } } - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); } ImGui.Separator(); @@ -643,7 +643,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase UiSharedService.TextWrapped($"Syncshell was pruned and {_pruneTask.Result} inactive user(s) have been removed."); } } - _uiSharedService.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("DimRed"), 1.5f); ImGui.TreePop(); } ImGui.Separator(); @@ -689,7 +689,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase } ImGui.EndTable(); } - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow"), 1.5f); ImGui.TreePop(); } ImGui.Separator(); diff --git a/LightlessSync/UI/SyncshellFinderUI.cs b/LightlessSync/UI/SyncshellFinderUI.cs index d7f5605..3181513 100644 --- a/LightlessSync/UI/SyncshellFinderUI.cs +++ b/LightlessSync/UI/SyncshellFinderUI.cs @@ -73,7 +73,7 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase protected override void DrawInternal() { _uiSharedService.MediumText("Nearby Syncshells", UIColors.Get("PairBlue")); - _uiSharedService.ColoredSeparator(UIColors.Get("PairBlue")); + UiSharedService.ColoredSeparator(UIColors.Get("PairBlue")); if (_nearbySyncshells.Count == 0) { @@ -82,7 +82,7 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase if (!_broadcastService.IsBroadcasting) { - _uiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow")); + UiSharedService.ColoredSeparator(UIColors.Get("LightlessYellow")); ImGui.TextColored(UIColors.Get("LightlessYellow"), "Lightfinder is currently disabled, to locate nearby syncshells, Lightfinder must be active."); ImGuiHelpers.ScaledDummy(0.5f); diff --git a/LightlessSync/UI/UIColors.cs b/LightlessSync/UI/UIColors.cs index 3c1eabd..dadb9f0 100644 --- a/LightlessSync/UI/UIColors.cs +++ b/LightlessSync/UI/UIColors.cs @@ -40,7 +40,7 @@ namespace LightlessSync.UI return HexToRgba(customColorHex); if (!DefaultHexColors.TryGetValue(name, out var hex)) - throw new ArgumentException($"Color '{name}' not found in UIColors."); + throw new ArgumentException($"Color '{name}' not found in UIColors.", nameof(name)); return HexToRgba(hex); } @@ -48,7 +48,7 @@ namespace LightlessSync.UI public static void Set(string name, Vector4 color) { if (!DefaultHexColors.ContainsKey(name)) - throw new ArgumentException($"Color '{name}' not found in UIColors."); + throw new ArgumentException($"Color '{name}' not found in UIColors.", nameof(name)); if (_configService != null) { @@ -78,7 +78,7 @@ namespace LightlessSync.UI public static Vector4 GetDefault(string name) { if (!DefaultHexColors.TryGetValue(name, out var hex)) - throw new ArgumentException($"Color '{name}' not found in UIColors."); + throw new ArgumentException($"Color '{name}' not found in UIColors.", nameof(name)); return HexToRgba(hex); } diff --git a/LightlessSync/UI/UISharedService.cs b/LightlessSync/UI/UISharedService.cs index eb3acce..ae9c7a9 100644 --- a/LightlessSync/UI/UISharedService.cs +++ b/LightlessSync/UI/UISharedService.cs @@ -475,7 +475,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase ); } - public void ColoredSeparator(Vector4? color = null, float thickness = 1f, float indent = 0f) + public static void ColoredSeparator(Vector4? color = null, float thickness = 1f, float indent = 0f) { var drawList = ImGui.GetWindowDrawList(); var min = ImGui.GetCursorScreenPos(); @@ -494,7 +494,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase ImGui.Dummy(new Vector2(0, thickness * ImGuiHelpers.GlobalScale)); } - public void RoundedSeparator(Vector4? color = null, float thickness = 2f, float indent = 0f, float rounding = 4f) + public static void RoundedSeparator(Vector4? color = null, float thickness = 2f, float indent = 0f, float rounding = 4f) { float scale = ImGuiHelpers.GlobalScale; diff --git a/LightlessSync/Utils/Crypto.cs b/LightlessSync/Utils/Crypto.cs index c31f82f..11f08fd 100644 --- a/LightlessSync/Utils/Crypto.cs +++ b/LightlessSync/Utils/Crypto.cs @@ -17,7 +17,7 @@ public static class Crypto { using SHA1 sha1 = SHA1.Create(); using FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete); - return BitConverter.ToString(sha1.ComputeHash(stream)).Replace("-", "", StringComparison.Ordinal); + return Convert.ToHexString(sha1.ComputeHash(stream)); } public static async Task GetFileHashAsync(string filePath, CancellationToken cancellationToken = default)