Wino Calendar app entry. (#819)
* Double app entry. * New icon for sys tray
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Mail.WinUI.Activation;
|
||||
|
||||
internal static class AppModeActivationResolver
|
||||
{
|
||||
public static WinoApplicationMode Resolve(string? launchArguments, string? tileId, string? appId)
|
||||
{
|
||||
if (TryResolveFromText(launchArguments, out var mode))
|
||||
return mode;
|
||||
|
||||
if (TryResolveFromText(tileId, out mode))
|
||||
return mode;
|
||||
|
||||
if (TryResolveFromText(appId, out mode))
|
||||
return mode;
|
||||
|
||||
return WinoApplicationMode.Mail;
|
||||
}
|
||||
|
||||
private static bool TryResolveFromText(string? value, out WinoApplicationMode mode)
|
||||
{
|
||||
mode = WinoApplicationMode.Mail;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
return false;
|
||||
|
||||
if (Contains(value, "wino-calendar") ||
|
||||
Contains(value, "--mode=calendar") ||
|
||||
Contains(value, "mode=calendar") ||
|
||||
Contains(value, "calendarapp") ||
|
||||
EqualsToken(value, "calendar"))
|
||||
{
|
||||
mode = WinoApplicationMode.Calendar;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Contains(value, "wino-mail") ||
|
||||
Contains(value, "--mode=mail") ||
|
||||
Contains(value, "mode=mail") ||
|
||||
Contains(value, "mailapp") ||
|
||||
EqualsToken(value, "mail"))
|
||||
{
|
||||
mode = WinoApplicationMode.Mail;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool Contains(string source, string token)
|
||||
=> source.Contains(token, StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
private static bool EqualsToken(string source, string token)
|
||||
=> string.Equals(source.Trim(), token, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
Reference in New Issue
Block a user