Tray icon implementation.

This commit is contained in:
Burak Kaan Köse
2025-10-04 15:46:05 +02:00
parent a00ff3df46
commit 3b1eff1702
7 changed files with 309 additions and 0 deletions
+10
View File
@@ -8,6 +8,7 @@ using Wino.Core.WinUI;
using Wino.Core.WinUI.Interfaces;
using Wino.Mail.Services;
using Wino.Mail.ViewModels;
using Wino.Mail.WinUI.Services;
using Wino.Messaging.Server;
using Wino.Services;
namespace Wino.Mail.WinUI;
@@ -33,6 +34,7 @@ public partial class App : WinoApplication, IRecipient<NewMailSynchronizationReq
services.AddTransient<ISettingsBuilderService, SettingsBuilderService>();
services.AddTransient<IProviderService, ProviderService>();
services.AddSingleton<IAuthenticatorConfig, MailAuthenticatorConfiguration>();
services.AddSingleton<ISystemTrayService, SystemTrayService>();
}
private void RegisterViewModels(IServiceCollection services)
@@ -91,6 +93,14 @@ public partial class App : WinoApplication, IRecipient<NewMailSynchronizationReq
await InitializeServicesAsync();
// Initialize system tray
var systemTrayService = Services.GetService<ISystemTrayService>();
if (systemTrayService != null)
{
systemTrayService.Initialize();
systemTrayService.Show(); // Explicitly show the tray icon
}
if (MainWindow is not IWinoShellWindow shellWindow) throw new ArgumentException("MainWindow must implement IWinoShellWindow");
shellWindow.HandleAppActivation(args);