Adding iCloud and Yahoo as special IMAP handling scenario.
This commit is contained in:
@@ -72,6 +72,12 @@ namespace Wino.Core.Domain.Entities.Shared
|
||||
/// </summary>
|
||||
public Guid? MergedInboxId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the additional IMAP provider assignment for the account.
|
||||
/// Providers that use IMAP as a synchronizer but have special requirements.
|
||||
/// </summary>
|
||||
public SpecialImapProvider SpecialImapProvider { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Contains the merged inbox this account belongs to.
|
||||
/// Ignored for all SQLite operations.
|
||||
@@ -95,7 +101,7 @@ namespace Wino.Core.Domain.Entities.Shared
|
||||
/// <summary>
|
||||
/// Gets whether the account can perform ProfileInformation sync type.
|
||||
/// </summary>
|
||||
public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Office365 || ProviderType == MailProviderType.Gmail;
|
||||
public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Gmail;
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether the account can perform AliasInformation sync type.
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
{
|
||||
Outlook,
|
||||
Gmail,
|
||||
Office365,
|
||||
Yahoo,
|
||||
IMAP4
|
||||
IMAP4 = 4 // 2-3 were removed after release. Don't change for backward compatibility.
|
||||
}
|
||||
}
|
||||
|
||||
9
Wino.Core.Domain/Enums/SpecialImapProvider.cs
Normal file
9
Wino.Core.Domain/Enums/SpecialImapProvider.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum SpecialImapProvider
|
||||
{
|
||||
None,
|
||||
iCloud,
|
||||
Yahoo
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
public interface IProviderDetail
|
||||
{
|
||||
MailProviderType Type { get; }
|
||||
SpecialImapProvider SpecialImapProvider { get; }
|
||||
string Name { get; }
|
||||
string Description { get; }
|
||||
string ProviderImage { get; }
|
||||
|
||||
@@ -6,18 +6,32 @@ namespace Wino.Core.Domain.Models.Accounts
|
||||
public class ProviderDetail : IProviderDetail
|
||||
{
|
||||
public MailProviderType Type { get; }
|
||||
|
||||
public SpecialImapProvider SpecialImapProvider { get; }
|
||||
public string Name { get; }
|
||||
|
||||
public string Description { get; }
|
||||
|
||||
public string ProviderImage => $"ms-appx:///Wino.Core.UWP/Assets/Providers/{Type}.png";
|
||||
public string ProviderImage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SpecialImapProvider == SpecialImapProvider.None)
|
||||
{
|
||||
return $"ms-appx:///Wino.Core.UWP/Assets/Providers/{Type}.png";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"ms-appx:///Wino.Core.UWP/Assets/Providers/{SpecialImapProvider}.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsSupported => Type == MailProviderType.Outlook || Type == MailProviderType.Gmail || Type == MailProviderType.IMAP4;
|
||||
|
||||
public ProviderDetail(MailProviderType type)
|
||||
public ProviderDetail(MailProviderType type, SpecialImapProvider specialImapProvider)
|
||||
{
|
||||
Type = type;
|
||||
SpecialImapProvider = specialImapProvider;
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
@@ -25,21 +39,29 @@ namespace Wino.Core.Domain.Models.Accounts
|
||||
Name = "Outlook";
|
||||
Description = "Outlook.com, Live.com, Hotmail, MSN";
|
||||
break;
|
||||
case MailProviderType.Office365:
|
||||
Name = "Office 365";
|
||||
Description = "Office 365, Exchange";
|
||||
break;
|
||||
case MailProviderType.Gmail:
|
||||
Name = "Gmail";
|
||||
Description = Translator.ProviderDetail_Gmail_Description;
|
||||
break;
|
||||
case MailProviderType.Yahoo:
|
||||
Name = "Yahoo";
|
||||
Description = "Yahoo Mail";
|
||||
break;
|
||||
case MailProviderType.IMAP4:
|
||||
Name = Translator.ProviderDetail_IMAP_Title;
|
||||
Description = Translator.ProviderDetail_IMAP_Description;
|
||||
switch (specialImapProvider)
|
||||
{
|
||||
case SpecialImapProvider.None:
|
||||
Name = Translator.ProviderDetail_IMAP_Title;
|
||||
Description = Translator.ProviderDetail_IMAP_Description;
|
||||
break;
|
||||
case SpecialImapProvider.iCloud:
|
||||
Name = Translator.ProviderDetail_iCloud_Title;
|
||||
Description = Translator.ProviderDetail_iCloud_Description;
|
||||
break;
|
||||
case SpecialImapProvider.Yahoo:
|
||||
Name = Translator.ProviderDetail_Yahoo_Title;
|
||||
Description = Translator.ProviderDetail_Yahoo_Description;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,6 +401,10 @@
|
||||
"ProviderDetail_Gmail_Description": "Google Account",
|
||||
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
|
||||
"ProviderDetail_IMAP_Title": "IMAP Server",
|
||||
"ProviderDetail_Yahoo_Title": "Yahoo Mail",
|
||||
"ProviderDetail_Yahoo_Description": "Yahoo Account",
|
||||
"ProviderDetail_iCloud_Title": "iCloud",
|
||||
"ProviderDetail_iCloud_Description": "Apple iCloud Account",
|
||||
"ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
|
||||
"Results": "Results",
|
||||
"Right": "Right",
|
||||
|
||||
Reference in New Issue
Block a user