diff --git a/LightlessSync/Services/NotificationService.cs b/LightlessSync/Services/NotificationService.cs index 990e2b6..c15fd3f 100644 --- a/LightlessSync/Services/NotificationService.cs +++ b/LightlessSync/Services/NotificationService.cs @@ -336,43 +336,24 @@ public class NotificationService : DisposableMediatorSubscriberBase, IHostedServ if (!_dalamudUtilService.IsLoggedIn) return; - // Get both old and new notification locations - var oldLocation = msg.Type switch - { - NotificationType.Info => _configService.Current.InfoNotification, - NotificationType.Warning => _configService.Current.WarningNotification, - NotificationType.Error => _configService.Current.ErrorNotification, - _ => NotificationLocation.Nowhere - }; - - var newLocation = msg.Type switch - { - NotificationType.Info => _configService.Current.LightlessInfoNotification, - NotificationType.Warning => _configService.Current.LightlessWarningNotification, - NotificationType.Error => _configService.Current.LightlessErrorNotification, - _ => NotificationLocation.LightlessUI - }; - - // Show notifications based on system selection with backwards compatibility - if (!_configService.Current.UseLightlessNotifications) - { - // Only use old system when new system is disabled - ShowNotificationLocationBased(msg, oldLocation); - } - else - { - // Use new system as primary - ShowNotificationLocationBased(msg, newLocation); - - // Also use old system as fallback for backwards compatibility - // Only if it's different from the new location and not "Nowhere" - if (oldLocation != NotificationLocation.Nowhere && - oldLocation != newLocation && - !IsLightlessLocation(oldLocation)) + // Get notification location based on type and system pref + var location = _configService.Current.UseLightlessNotifications + ? msg.Type switch { - ShowNotificationLocationBased(msg, oldLocation); + NotificationType.Info => _configService.Current.LightlessInfoNotification, + NotificationType.Warning => _configService.Current.LightlessWarningNotification, + NotificationType.Error => _configService.Current.LightlessErrorNotification, + _ => NotificationLocation.LightlessUI } - } + : msg.Type switch + { + NotificationType.Info => _configService.Current.InfoNotification, + NotificationType.Warning => _configService.Current.WarningNotification, + NotificationType.Error => _configService.Current.ErrorNotification, + _ => NotificationLocation.Nowhere + }; + + ShowNotificationLocationBased(msg, location); } private void ShowNotificationLocationBased(NotificationMessage msg, NotificationLocation location) @@ -488,13 +469,4 @@ public class NotificationService : DisposableMediatorSubscriberBase, IHostedServ _chatGui.Print(se.BuiltString); } - private bool IsLightlessLocation(NotificationLocation location) - { - return location switch - { - NotificationLocation.LightlessUI => true, - NotificationLocation.ChatAndLightlessUI => true, - _ => false - }; - } } \ No newline at end of file diff --git a/LightlessSync/UI/SettingsUi.cs b/LightlessSync/UI/SettingsUi.cs index ce7e63a..074eb60 100644 --- a/LightlessSync/UI/SettingsUi.cs +++ b/LightlessSync/UI/SettingsUi.cs @@ -2623,24 +2623,25 @@ public class SettingsUi : WindowMediatorSubscriberBase ImGuiHelpers.ScaledDummy(5); bool useLightlessNotifications = _configService.Current.UseLightlessNotifications; - if (ImGui.Checkbox("Use Enhanced Lightless Notifications", ref useLightlessNotifications)) + if (ImGui.Checkbox("Use Lightless Notifications", ref useLightlessNotifications)) { _configService.Current.UseLightlessNotifications = useLightlessNotifications; _configService.Save(); } - _uiShared.DrawHelpText("Enable the new enhanced notification system with interactive buttons, animations, and better visual design."); + _uiShared.DrawHelpText("Enable modern notifications with interactive buttons, animations, and progress tracking. Disable for classic Dalamud toast/chat notifications."); + + ImGuiHelpers.ScaledDummy(5); ImGui.Separator(); _uiShared.UnderlinedBigText("Notification Locations", UIColors.Get("LightlessBlue")); ImGuiHelpers.ScaledDummy(5); - UiSharedService.ColorTextWrapped("Configure where different types of notifications appear. Enhanced notifications provide modern interactive notifications with backwards compatibility support for classic toast/chat notifications.", ImGuiColors.DalamudGrey); + UiSharedService.ColorTextWrapped("Choose where each notification type appears.", ImGuiColors.DalamudGrey); ImGuiHelpers.ScaledDummy(5); if (useLightlessNotifications) { - // Enhanced notification locations (primary) - _uiShared.BigText("Enhanced Notification Locations"); - ImGuiHelpers.ScaledDummy(3); + // Lightless notification locations + ImGui.Indent(); var lightlessLocations = GetLightlessNotificationLocations(); @@ -2674,53 +2675,14 @@ public class SettingsUi : WindowMediatorSubscriberBase _configService.Save(); }, _configService.Current.LightlessErrorNotification); - ImGuiHelpers.ScaledDummy(5); - - // Classic notification locations (backwards compatibility) - if (ImGui.CollapsingHeader("Classic Notification Settings (Backwards Compatibility)")) - { - _uiShared.DrawHelpText("These settings provide backwards compatibility. They will also be used if they're different from the enhanced settings above and don't conflict."); - ImGuiHelpers.ScaledDummy(3); - - var classicLocations = GetClassicNotificationLocations(); - - ImGui.AlignTextToFramePadding(); - ImGui.TextUnformatted("Info Fallback:"); - ImGui.SameLine(); - ImGui.SetNextItemWidth(200 * ImGuiHelpers.GlobalScale); - _uiShared.DrawCombo("###classic_info", classicLocations, GetNotificationLocationLabel, (location) => - { - _configService.Current.InfoNotification = location; - _configService.Save(); - }, _configService.Current.InfoNotification); - - ImGui.AlignTextToFramePadding(); - ImGui.TextUnformatted("Warning Fallback:"); - ImGui.SameLine(); - ImGui.SetNextItemWidth(200 * ImGuiHelpers.GlobalScale); - _uiShared.DrawCombo("###classic_warning", classicLocations, GetNotificationLocationLabel, (location) => - { - _configService.Current.WarningNotification = location; - _configService.Save(); - }, _configService.Current.WarningNotification); - - ImGui.AlignTextToFramePadding(); - ImGui.TextUnformatted("Error Fallback:"); - ImGui.SameLine(); - ImGui.SetNextItemWidth(200 * ImGuiHelpers.GlobalScale); - _uiShared.DrawCombo("###classic_error", classicLocations, GetNotificationLocationLabel, (location) => - { - _configService.Current.ErrorNotification = location; - _configService.Save(); - }, _configService.Current.ErrorNotification); - } + + ImGui.Unindent(); } else { - // Only classic notifications when enhanced is disabled + // Classic notifications when lightless notifs is disabled var classicLocations = GetClassicNotificationLocations(); - _uiShared.BigText("Classic Notification Locations"); - ImGuiHelpers.ScaledDummy(3); + ImGui.Indent(); ImGui.AlignTextToFramePadding(); ImGui.TextUnformatted("Info Notifications:"); ImGui.SameLine(); @@ -2750,23 +2712,17 @@ public class SettingsUi : WindowMediatorSubscriberBase _configService.Current.ErrorNotification = location; _configService.Save(); }, _configService.Current.ErrorNotification); + + ImGui.Unindent(); } + + ImGuiHelpers.ScaledDummy(3); ImGui.Separator(); if (useLightlessNotifications) { - UiSharedService.ColorTextWrapped("• Lightless Notifications: Modern animated notifications with interactive buttons", ImGuiColors.DalamudGrey); - UiSharedService.ColorTextWrapped("• Chat: Traditional chat messages with colored text", ImGuiColors.DalamudGrey); - UiSharedService.ColorTextWrapped("• Combined options: Show in multiple locations simultaneously", ImGuiColors.DalamudGrey); - } - else - { - UiSharedService.ColorTextWrapped("• Toast: Dalamud's built-in notification toasts", ImGuiColors.DalamudGrey); - UiSharedService.ColorTextWrapped("• Chat: Traditional chat messages with colored text", ImGuiColors.DalamudGrey); - UiSharedService.ColorTextWrapped("• Both: Show in both toast and chat", ImGuiColors.DalamudGrey); - } - ImGui.Separator(); - if (useLightlessNotifications) - { + _uiShared.UnderlinedBigText("Test Notifications", UIColors.Get("LightlessBlue")); + ImGuiHelpers.ScaledDummy(5); + ImGui.Indent(); // Test notification buttons @@ -2784,10 +2740,11 @@ public class SettingsUi : WindowMediatorSubscriberBase { Mediator.Publish(new NotificationMessage("Test Error", "This is a test error notification!", NotificationType.Error)); } - _uiShared.DrawHelpText("Click to preview different notification types with your current settings."); + _uiShared.DrawHelpText("Preview how notifications will appear with your current settings."); ImGui.Unindent(); + ImGuiHelpers.ScaledDummy(5); ImGui.Separator(); _uiShared.UnderlinedBigText("Basic Settings", UIColors.Get("LightlessBlue")); ImGuiHelpers.ScaledDummy(5);