diff --git a/Wino.Core.Domain/Entities/CustomServerInformation.cs b/Wino.Core.Domain/Entities/CustomServerInformation.cs
index 413b0763..c1566399 100644
--- a/Wino.Core.Domain/Entities/CustomServerInformation.cs
+++ b/Wino.Core.Domain/Entities/CustomServerInformation.cs
@@ -43,11 +43,5 @@ namespace Wino.Core.Domain.Entities
public string ProxyServer { get; set; }
public string ProxyServerPort { get; set; }
-
- [Obsolete("As 1.7.0")]
- public bool IncomingRequiresSSL { get; set; }
-
- [Obsolete("As 1.7.0")]
- public bool OutgoingRequresSSL { get; set; }
}
}
diff --git a/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs b/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
index bd027024..41226041 100644
--- a/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
+++ b/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
@@ -4,8 +4,11 @@ namespace Wino.Core.Domain.Exceptions
{
public class ImapClientPoolException : Exception
{
- public ImapClientPoolException(Exception innerException) : base(Translator.Exception_ImapClientPoolFailed, innerException)
+ public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
{
+ ProtocolLog = protocolLog;
}
+
+ public string ProtocolLog { get; }
}
}
diff --git a/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs b/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
new file mode 100644
index 00000000..f33e775e
--- /dev/null
+++ b/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
@@ -0,0 +1,21 @@
+using System;
+using Wino.Core.Domain.Models.AutoDiscovery;
+
+namespace Wino.Core.Domain.Exceptions
+{
+ public class ImapConnectionFailedPackage
+ {
+ public ImapConnectionFailedPackage(Exception error, string protocolLog, AutoDiscoverySettings settings)
+ {
+ Error = error;
+ ProtocolLog = protocolLog;
+ Settings = settings;
+ }
+
+ public AutoDiscoverySettings Settings { get; }
+ public Exception Error { get; }
+ public string ProtocolLog { get; }
+
+ public string GetErrorMessage() => Error.InnerException == null ? Error.Message : Error.InnerException.Message;
+ }
+}
diff --git a/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs b/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs
index ef3a81f1..c133a1db 100644
--- a/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs
+++ b/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs
@@ -15,5 +15,11 @@ namespace Wino.Core.Domain.Interfaces
/// Displays preparing folders page.
///
void ShowPreparingFolders();
+
+ ///
+ /// Updates account properties for the welcome imap setup dialog and starts the setup.
+ ///
+ /// Account properties.
+ void StartImapConnectionSetup(MailAccount account);
}
}
diff --git a/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoveryConnectionTestFailedPackage.cs b/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoveryConnectionTestFailedPackage.cs
deleted file mode 100644
index b4668aac..00000000
--- a/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoveryConnectionTestFailedPackage.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace Wino.Core.Domain.Models.AutoDiscovery
-{
- public class AutoDiscoveryConnectionTestFailedPackage
- {
- public AutoDiscoveryConnectionTestFailedPackage(AutoDiscoverySettings settings, Exception error)
- {
- Settings = settings ?? throw new ArgumentNullException(nameof(settings));
- Error = error ?? throw new ArgumentNullException(nameof(error));
- }
-
- public AutoDiscoveryConnectionTestFailedPackage(Exception error)
- {
- Error = error ?? throw new ArgumentNullException(nameof(error));
- }
-
- public AutoDiscoverySettings Settings { get; set; }
- public Exception Error { get; set; }
- }
-}
diff --git a/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoverySettings.cs b/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoverySettings.cs
index 74f4ae2e..56ca0ab9 100644
--- a/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoverySettings.cs
+++ b/Wino.Core.Domain/Models/AutoDiscovery/AutoDiscoverySettings.cs
@@ -30,9 +30,6 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
if (imapSettings == null || smtpSettings == null) return null;
- bool imapRequiresSSL = imapSettings.Secure == "SSL";
- bool smtpRequiresSSL = smtpSettings.Secure == "SSL";
-
string imapUrl = imapSettings.Address;
string smtpUrl = smtpSettings.Address;
@@ -49,8 +46,8 @@ namespace Wino.Core.Domain.Models.AutoDiscovery
Address = UserMinimalSettings.Email,
IncomingServerPassword = UserMinimalSettings.Password,
OutgoingServerPassword = UserMinimalSettings.Password,
- IncomingRequiresSSL = imapRequiresSSL,
- OutgoingRequresSSL = smtpRequiresSSL,
+ IncomingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
+ OutgoingAuthenticationMethod = Enums.ImapAuthenticationMethod.Auto,
IncomingServer = imapUrl,
OutgoingServer = smtpUrl,
IncomingServerPort = imapPort.ToString(),
diff --git a/Wino.Core.Domain/Translations/en_US/resources.json b/Wino.Core.Domain/Translations/en_US/resources.json
index 0151eefe..d390fcff 100644
--- a/Wino.Core.Domain/Translations/en_US/resources.json
+++ b/Wino.Core.Domain/Translations/en_US/resources.json
@@ -27,6 +27,7 @@
"Buttons_Close": "Close",
"Buttons_Create": "Create",
"Buttons_CreateAccount": "Create Account",
+ "Buttons_Copy": "Copy",
"Buttons_Delete": "Delete",
"Buttons_Edit": "Edit",
"Buttons_Discard": "Discard",
@@ -39,6 +40,7 @@
"Buttons_SaveConfiguration": "Save Configuration",
"Buttons_Share": "Share",
"Buttons_SignIn": "Sign In",
+ "Buttons_TryAgain": "Try Again",
"Buttons_Yes": "Yes",
"Center": "Center",
"ComingSoon": "Coming soon...",
@@ -99,6 +101,7 @@
"ElementTheme_Default": "Use system setting",
"ElementTheme_Light": "Light mode",
"Emoji": "Emoji",
+ "Exception_ImapAutoDiscoveryFailed": "Couldn't find mailbox settings.",
"Exception_ImapClientPoolFailed": "IMAP Client Pool failed.",
"Exception_AuthenticationCanceled": "Authentication canceled",
"Exception_CustomThemeExists": "This theme already exists.",
@@ -169,6 +172,8 @@
"IMAPSetupDialog_UseSameConfig": "Use the same username and password for sending email",
"IMAPSetupDialog_Username": "Username",
"IMAPSetupDialog_UsernamePlaceholder": "johndoe, johndoe@fabrikam.com, domain/johndoe",
+ "IMAPSetupDialog_ConnectionFailedTitle": "Connection Failed",
+ "IMAPSetupDialog_ConnectionFailedMessage": "IMAP connection failed.",
"ImageRenderingDisabled": "Image rendering is disabled for this message.",
"InfoBarAction_Enable": "Enable",
"InfoBarMessage_SynchronizationDisabledFolder": "This folder is disabled for synchronization.",
@@ -323,6 +328,7 @@
"ProviderDetail_Gmail_Description": "Google Account",
"ProviderDetail_IMAP_Description": "Custom IMAP/SMTP server",
"ProviderDetail_IMAP_Title": "IMAP Server",
+ "ProtocolLogAvailable_Message": "Protocol logs are available for diagnostics.",
"Results": "Results",
"Right": "Right",
"SynchronizationFolderReport_Success": "up to date",
diff --git a/Wino.Core.Domain/Translator.Designer.cs b/Wino.Core.Domain/Translator.Designer.cs
index 3189c67a..9697d379 100644
--- a/Wino.Core.Domain/Translator.Designer.cs
+++ b/Wino.Core.Domain/Translator.Designer.cs
@@ -1,4 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
namespace Wino.Core.Domain
{
public class Translator
@@ -18,2051 +32,2497 @@ namespace Wino.Core.Domain
}
}
+
///
/// all done
///
public static string AccountCreationDialog_Completed => Resources.GetTranslatedString(@"AccountCreationDialog_Completed");
+
///
/// initializing
///
public static string AccountCreationDialog_Initializing => Resources.GetTranslatedString(@"AccountCreationDialog_Initializing");
+
///
/// We are getting folder information at the moment.
///
public static string AccountCreationDialog_PreparingFolders => Resources.GetTranslatedString(@"AccountCreationDialog_PreparingFolders");
+
///
/// Account information is being saved.
///
public static string AccountCreationDialog_SigninIn => Resources.GetTranslatedString(@"AccountCreationDialog_SigninIn");
+
///
/// Account Name
///
public static string AccountEditDialog_Message => Resources.GetTranslatedString(@"AccountEditDialog_Message");
+
///
/// Edit Account
///
public static string AccountEditDialog_Title => Resources.GetTranslatedString(@"AccountEditDialog_Title");
+
///
/// Pick an account
///
public static string AccountPickerDialog_Title => Resources.GetTranslatedString(@"AccountPickerDialog_Title");
+
///
/// Sender Display Name
///
public static string AccountSettingsDialog_AccountName => Resources.GetTranslatedString(@"AccountSettingsDialog_AccountName");
+
///
/// eg. John Doe
///
public static string AccountSettingsDialog_AccountNamePlaceholder => Resources.GetTranslatedString(@"AccountSettingsDialog_AccountNamePlaceholder");
+
///
/// Add
///
public static string AddHyperlink => Resources.GetTranslatedString(@"AddHyperlink");
+
///
/// Searching for mail settings...
///
public static string AutoDiscoveryProgressMessage => Resources.GetTranslatedString(@"AutoDiscoveryProgressMessage");
+
///
/// Advanced Configuration
///
public static string BasicIMAPSetupDialog_AdvancedConfiguration => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_AdvancedConfiguration");
+
///
/// Your credentials will only be stored locally on your computer.
///
public static string BasicIMAPSetupDialog_CredentialLocalMessage => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_CredentialLocalMessage");
+
///
/// Some accounts require additional steps to sign in
///
public static string BasicIMAPSetupDialog_Description => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_Description");
+
///
/// Display Name
///
public static string BasicIMAPSetupDialog_DisplayName => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_DisplayName");
+
///
/// eg. John Doe
///
public static string BasicIMAPSetupDialog_DisplayNamePlaceholder => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_DisplayNamePlaceholder");
+
///
/// Learn more
///
public static string BasicIMAPSetupDialog_LearnMore => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_LearnMore");
+
///
/// E-Mail Address
///
public static string BasicIMAPSetupDialog_MailAddress => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_MailAddress");
+
///
/// johndoe@fabrikam.com
///
public static string BasicIMAPSetupDialog_MailAddressPlaceholder => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_MailAddressPlaceholder");
+
///
/// Password
///
public static string BasicIMAPSetupDialog_Password => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_Password");
+
///
/// IMAP Account
///
public static string BasicIMAPSetupDialog_Title => Resources.GetTranslatedString(@"BasicIMAPSetupDialog_Title");
+
///
/// Add Account
///
public static string Buttons_AddAccount => Resources.GetTranslatedString(@"Buttons_AddAccount");
+
///
/// Apply Theme
///
public static string Buttons_ApplyTheme => Resources.GetTranslatedString(@"Buttons_ApplyTheme");
+
///
/// Browse
///
public static string Buttons_Browse => Resources.GetTranslatedString(@"Buttons_Browse");
+
///
/// Cancel
///
public static string Buttons_Cancel => Resources.GetTranslatedString(@"Buttons_Cancel");
+
///
/// Close
///
public static string Buttons_Close => Resources.GetTranslatedString(@"Buttons_Close");
+
///
/// Create
///
public static string Buttons_Create => Resources.GetTranslatedString(@"Buttons_Create");
+
///
/// Create Account
///
public static string Buttons_CreateAccount => Resources.GetTranslatedString(@"Buttons_CreateAccount");
+
+ ///
+ /// Copy
+ ///
+ public static string Buttons_Copy => Resources.GetTranslatedString(@"Buttons_Copy");
+
+
///
/// Delete
///
public static string Buttons_Delete => Resources.GetTranslatedString(@"Buttons_Delete");
+
///
/// Edit
///
public static string Buttons_Edit => Resources.GetTranslatedString(@"Buttons_Edit");
+
///
/// Discard
///
public static string Buttons_Discard => Resources.GetTranslatedString(@"Buttons_Discard");
+
///
/// Enable
///
public static string Buttons_EnableImageRendering => Resources.GetTranslatedString(@"Buttons_EnableImageRendering");
+
///
/// No
///
public static string Buttons_No => Resources.GetTranslatedString(@"Buttons_No");
+
///
/// Open
///
public static string Buttons_Open => Resources.GetTranslatedString(@"Buttons_Open");
+
///
/// Purchase
///
public static string Buttons_Purchase => Resources.GetTranslatedString(@"Buttons_Purchase");
+
///
/// Rate Wino
///
public static string Buttons_RateWino => Resources.GetTranslatedString(@"Buttons_RateWino");
+
///
/// Save
///
public static string Buttons_Save => Resources.GetTranslatedString(@"Buttons_Save");
+
///
/// Save Configuration
///
public static string Buttons_SaveConfiguration => Resources.GetTranslatedString(@"Buttons_SaveConfiguration");
+
///
/// Share
///
public static string Buttons_Share => Resources.GetTranslatedString(@"Buttons_Share");
+
///
/// Sign In
///
public static string Buttons_SignIn => Resources.GetTranslatedString(@"Buttons_SignIn");
+
+ ///
+ /// Try Again
+ ///
+ public static string Buttons_TryAgain => Resources.GetTranslatedString(@"Buttons_TryAgain");
+
+
///
/// Yes
///
public static string Buttons_Yes => Resources.GetTranslatedString(@"Buttons_Yes");
+
///
/// Center
///
public static string Center => Resources.GetTranslatedString(@"Center");
+
///
/// Coming soon...
///
public static string ComingSoon => Resources.GetTranslatedString(@"ComingSoon");
+
///
/// From:
///
public static string ComposerFrom => Resources.GetTranslatedString(@"ComposerFrom");
+
///
/// Subject:
///
public static string ComposerSubject => Resources.GetTranslatedString(@"ComposerSubject");
+
///
/// To:
///
public static string ComposerTo => Resources.GetTranslatedString(@"ComposerTo");
+
///
/// {0} copied to clipboard.
///
public static string ClipboardTextCopied_Message => Resources.GetTranslatedString(@"ClipboardTextCopied_Message");
+
///
/// Copied
///
public static string ClipboardTextCopied_Title => Resources.GetTranslatedString(@"ClipboardTextCopied_Title");
+
///
/// Failed to copy {0} to clipboard.
///
public static string ClipboardTextCopyFailed_Message => Resources.GetTranslatedString(@"ClipboardTextCopyFailed_Message");
+
///
/// click enter to input addresses
///
public static string ComposerToPlaceholder => Resources.GetTranslatedString(@"ComposerToPlaceholder");
+
///
/// Drop your files here
///
public static string ComposerAttachmentsDropZone_Message => Resources.GetTranslatedString(@"ComposerAttachmentsDropZone_Message");
+
///
/// Attach
///
public static string ComposerAttachmentsDragDropAttach_Message => Resources.GetTranslatedString(@"ComposerAttachmentsDragDropAttach_Message");
+
///
/// Set custom accent color if you wish. Not selecting a color will use your Windows accent color.
///
public static string CustomThemeBuilder_AccentColorDescription => Resources.GetTranslatedString(@"CustomThemeBuilder_AccentColorDescription");
+
///
/// Accent color
///
public static string CustomThemeBuilder_AccentColorTitle => Resources.GetTranslatedString(@"CustomThemeBuilder_AccentColorTitle");
+
///
/// Pick
///
public static string CustomThemeBuilder_PickColor => Resources.GetTranslatedString(@"CustomThemeBuilder_PickColor");
+
///
/// Unique name for your custom theme.
///
public static string CustomThemeBuilder_ThemeNameDescription => Resources.GetTranslatedString(@"CustomThemeBuilder_ThemeNameDescription");
+
///
/// Theme name
///
public static string CustomThemeBuilder_ThemeNameTitle => Resources.GetTranslatedString(@"CustomThemeBuilder_ThemeNameTitle");
+
///
/// Custom Theme Builder
///
public static string CustomThemeBuilder_Title => Resources.GetTranslatedString(@"CustomThemeBuilder_Title");
+
///
/// Set a custom wallpaper for Wino
///
public static string CustomThemeBuilder_WallpaperDescription => Resources.GetTranslatedString(@"CustomThemeBuilder_WallpaperDescription");
+
///
/// Set custom wallpaper
///
public static string CustomThemeBuilder_WallpaperTitle => Resources.GetTranslatedString(@"CustomThemeBuilder_WallpaperTitle");
+
///
/// You have reached the account creation limit. Would you like to purchase 'Unlimited Account' add-on to continue?
///
public static string DialogMessage_AccountLimitMessage => Resources.GetTranslatedString(@"DialogMessage_AccountLimitMessage");
+
///
/// Account Limit Reached
///
public static string DialogMessage_AccountLimitTitle => Resources.GetTranslatedString(@"DialogMessage_AccountLimitTitle");
+
///
/// Do you want to permanently delete all the mails in this folder?
///
public static string DialogMessage_CleanupFolderMessage => Resources.GetTranslatedString(@"DialogMessage_CleanupFolderMessage");
+
///
/// Cleanup Folder
///
public static string DialogMessage_CleanupFolderTitle => Resources.GetTranslatedString(@"DialogMessage_CleanupFolderTitle");
+
///
/// Message has no recipient.
///
public static string DialogMessage_ComposerMissingRecipientMessage => Resources.GetTranslatedString(@"DialogMessage_ComposerMissingRecipientMessage");
+
///
/// Validation Failed
///
public static string DialogMessage_ComposerValidationFailedTitle => Resources.GetTranslatedString(@"DialogMessage_ComposerValidationFailedTitle");
+
///
/// Give this new link a name. Accounts will be merged under this name.
///
public static string DialogMessage_CreateLinkedAccountMessage => Resources.GetTranslatedString(@"DialogMessage_CreateLinkedAccountMessage");
+
///
/// Account Link Name
///
public static string DialogMessage_CreateLinkedAccountTitle => Resources.GetTranslatedString(@"DialogMessage_CreateLinkedAccountTitle");
+
///
/// Delete {0}?
///
public static string DialogMessage_DeleteAccountConfirmationMessage => Resources.GetTranslatedString(@"DialogMessage_DeleteAccountConfirmationMessage");
+
///
/// All data associated with this account will be deleted from disk permanently.
///
public static string DialogMessage_DeleteAccountConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_DeleteAccountConfirmationTitle");
+
///
/// This draft will be discarded. Do you want to continue?
///
public static string DialogMessage_DiscardDraftConfirmationMessage => Resources.GetTranslatedString(@"DialogMessage_DiscardDraftConfirmationMessage");
+
///
/// Discard Draft
///
public static string DialogMessage_DiscardDraftConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_DiscardDraftConfirmationTitle");
+
///
/// Permanent Delete
///
public static string DialogMessage_HardDeleteConfirmationMessage => Resources.GetTranslatedString(@"DialogMessage_HardDeleteConfirmationMessage");
+
///
/// Message(s) will be permanently deleted. Do you want to continue?
///
public static string DialogMessage_HardDeleteConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_HardDeleteConfirmationTitle");
+
///
/// You don't have any accounts to create message from.
///
public static string DialogMessage_NoAccountsForCreateMailMessage => Resources.GetTranslatedString(@"DialogMessage_NoAccountsForCreateMailMessage");
+
///
/// Account Missing
///
public static string DialogMessage_NoAccountsForCreateMailTitle => Resources.GetTranslatedString(@"DialogMessage_NoAccountsForCreateMailTitle");
+
///
/// Enter new name for linked account
///
public static string DialogMessage_RenameLinkedAccountsMessage => Resources.GetTranslatedString(@"DialogMessage_RenameLinkedAccountsMessage");
+
///
/// Rename Linked Account
///
public static string DialogMessage_RenameLinkedAccountsTitle => Resources.GetTranslatedString(@"DialogMessage_RenameLinkedAccountsTitle");
+
///
/// This operation will not delete your accounts but only break the link for shared folder connections. Do you want to continue?
///
public static string DialogMessage_UnlinkAccountsConfirmationMessage => Resources.GetTranslatedString(@"DialogMessage_UnlinkAccountsConfirmationMessage");
+
///
/// Unlink Accounts
///
public static string DialogMessage_UnlinkAccountsConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_UnlinkAccountsConfirmationTitle");
+
///
/// Missin Subject
///
public static string DialogMessage_EmptySubjectConfirmation => Resources.GetTranslatedString(@"DialogMessage_EmptySubjectConfirmation");
+
///
/// Message has no subject. Do you want to continue?
///
public static string DialogMessage_EmptySubjectConfirmationMessage => Resources.GetTranslatedString(@"DialogMessage_EmptySubjectConfirmationMessage");
+
///
/// Unsubscribe
///
public static string DialogMessage_UnsubscribeConfirmationTitle => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationTitle");
+
///
/// Do you want to stop getting messages from {0}?
///
public static string DialogMessage_UnsubscribeConfirmationOneClickMessage => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationOneClickMessage");
+
///
/// To stop getting messages from {0}, go to their website to unsubscribe.
///
public static string DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationGoToWebsiteMessage");
+
///
/// Go to website
///
public static string DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationGoToWebsiteConfirmButton");
+
///
/// Do you want to stop getting messages from {0}? Wino will unsubscribe for you by sending an email from your email account to {1}.
///
public static string DialogMessage_UnsubscribeConfirmationMailtoMessage => Resources.GetTranslatedString(@"DialogMessage_UnsubscribeConfirmationMailtoMessage");
+
///
/// Don't ask again
///
public static string Dialog_DontAskAgain => Resources.GetTranslatedString(@"Dialog_DontAskAgain");
+
///
/// Wino doesn't have it's own Discord server, but special 'wino-mail' channel is hosted at 'Developer Sanctuary' server. To get the updates about Wino please join Developer Sanctuary server and follow 'wino-mail' channel under 'Community Projects' You will be directed to server URL since Discord doesn't support channel invites.
///
public static string DiscordChannelDisclaimerMessage => Resources.GetTranslatedString(@"DiscordChannelDisclaimerMessage");
+
///
/// Important Discord Information
///
public static string DiscordChannelDisclaimerTitle => Resources.GetTranslatedString(@"DiscordChannelDisclaimerTitle");
+
///
/// Draft
///
public static string Draft => Resources.GetTranslatedString(@"Draft");
+
///
/// Draw
///
public static string EditorToolbarOption_Draw => Resources.GetTranslatedString(@"EditorToolbarOption_Draw");
+
///
/// Format
///
public static string EditorToolbarOption_Format => Resources.GetTranslatedString(@"EditorToolbarOption_Format");
+
///
/// Insert
///
public static string EditorToolbarOption_Insert => Resources.GetTranslatedString(@"EditorToolbarOption_Insert");
+
///
/// None
///
public static string EditorToolbarOption_None => Resources.GetTranslatedString(@"EditorToolbarOption_None");
+
///
/// Options
///
public static string EditorToolbarOption_Options => Resources.GetTranslatedString(@"EditorToolbarOption_Options");
+
///
/// Dark mode
///
public static string ElementTheme_Dark => Resources.GetTranslatedString(@"ElementTheme_Dark");
+
///
/// Use system setting
///
public static string ElementTheme_Default => Resources.GetTranslatedString(@"ElementTheme_Default");
+
///
/// Light mode
///
public static string ElementTheme_Light => Resources.GetTranslatedString(@"ElementTheme_Light");
+
///
/// Emoji
///
public static string Emoji => Resources.GetTranslatedString(@"Emoji");
+
+ ///
+ /// Couldn't find mailbox settings.
+ ///
+ public static string Exception_ImapAutoDiscoveryFailed => Resources.GetTranslatedString(@"Exception_ImapAutoDiscoveryFailed");
+
+
///
/// IMAP Client Pool failed.
///
public static string Exception_ImapClientPoolFailed => Resources.GetTranslatedString(@"Exception_ImapClientPoolFailed");
+
///
/// Authentication canceled
///
public static string Exception_AuthenticationCanceled => Resources.GetTranslatedString(@"Exception_AuthenticationCanceled");
+
///
/// This theme already exists.
///
public static string Exception_CustomThemeExists => Resources.GetTranslatedString(@"Exception_CustomThemeExists");
+
///
/// You must provide a name.
///
public static string Exception_CustomThemeMissingName => Resources.GetTranslatedString(@"Exception_CustomThemeMissingName");
+
///
/// You must provide a custom background image.
///
public static string Exception_CustomThemeMissingWallpaper => Resources.GetTranslatedString(@"Exception_CustomThemeMissingWallpaper");
+
///
/// Failed to synchronize folders
///
public static string Exception_FailedToSynchronizeFolders => Resources.GetTranslatedString(@"Exception_FailedToSynchronizeFolders");
+
///
/// Callback uri is null on activation.
///
public static string Exception_GoogleAuthCallbackNull => Resources.GetTranslatedString(@"Exception_GoogleAuthCallbackNull");
+
///
/// Corrupted authorization response.
///
public static string Exception_GoogleAuthCorruptedCode => Resources.GetTranslatedString(@"Exception_GoogleAuthCorruptedCode");
+
///
/// OAuth authorization error: {0}
///
public static string Exception_GoogleAuthError => Resources.GetTranslatedString(@"Exception_GoogleAuthError");
+
///
/// Received request with invalid state ({0})
///
public static string Exception_GoogleAuthInvalidResponse => Resources.GetTranslatedString(@"Exception_GoogleAuthInvalidResponse");
+
///
/// Authorization code exchange failed.
///
public static string Exception_GoogleAuthorizationCodeExchangeFailed => Resources.GetTranslatedString(@"Exception_GoogleAuthorizationCodeExchangeFailed");
+
///
/// System folder configuration is not valid. Check configuration and try again.
///
public static string Exception_InvalidSystemFolderConfiguration => Resources.GetTranslatedString(@"Exception_InvalidSystemFolderConfiguration");
+
///
/// Assigned account is null
///
public static string Exception_NullAssignedAccount => Resources.GetTranslatedString(@"Exception_NullAssignedAccount");
+
///
/// Assigned folder is null
///
public static string Exception_NullAssignedFolder => Resources.GetTranslatedString(@"Exception_NullAssignedFolder");
+
///
/// Response handling failed with error HTTP code {0}
///
public static string Exception_SynchronizerFailureHTTP => Resources.GetTranslatedString(@"Exception_SynchronizerFailureHTTP");
+
///
/// Token generation failed
///
public static string Exception_TokenGenerationFailed => Resources.GetTranslatedString(@"Exception_TokenGenerationFailed");
+
///
/// Failed to get token information.
///
public static string Exception_TokenInfoRetrivalFailed => Resources.GetTranslatedString(@"Exception_TokenInfoRetrivalFailed");
+
///
/// Unknown error occurred during authentication
///
public static string Exception_UnknowErrorDuringAuthentication => Resources.GetTranslatedString(@"Exception_UnknowErrorDuringAuthentication");
+
///
/// Action {0} is not implemented in request processor
///
public static string Exception_UnsupportedAction => Resources.GetTranslatedString(@"Exception_UnsupportedAction");
+
///
/// This provider is not supported.
///
public static string Exception_UnsupportedProvider => Resources.GetTranslatedString(@"Exception_UnsupportedProvider");
+
///
/// This operation is not supported for {0}
///
public static string Exception_UnsupportedSynchronizerOperation => Resources.GetTranslatedString(@"Exception_UnsupportedSynchronizerOperation");
+
///
/// User canceled system folder config dialog.
///
public static string Exception_UserCancelSystemFolderSetupDialog => Resources.GetTranslatedString(@"Exception_UserCancelSystemFolderSetupDialog");
+
///
/// Couldn't setup account folders.
///
public static string Exception_InboxNotAvailable => Resources.GetTranslatedString(@"Exception_InboxNotAvailable");
+
///
/// Files
///
public static string Files => Resources.GetTranslatedString(@"Files");
+
///
/// All
///
public static string FilteringOption_All => Resources.GetTranslatedString(@"FilteringOption_All");
+
///
/// Flagged
///
public static string FilteringOption_Flagged => Resources.GetTranslatedString(@"FilteringOption_Flagged");
+
///
/// Unread
///
public static string FilteringOption_Unread => Resources.GetTranslatedString(@"FilteringOption_Unread");
+
///
/// Has files
///
public static string FilteringOption_Files => Resources.GetTranslatedString(@"FilteringOption_Files");
+
///
/// Focused
///
public static string Focused => Resources.GetTranslatedString(@"Focused");
+
///
/// Create sub folder
///
public static string FolderOperation_CreateSubFolder => Resources.GetTranslatedString(@"FolderOperation_CreateSubFolder");
+
///
/// Delete
///
public static string FolderOperation_Delete => Resources.GetTranslatedString(@"FolderOperation_Delete");
+
///
/// Don't sync this folder
///
public static string FolderOperation_DontSync => Resources.GetTranslatedString(@"FolderOperation_DontSync");
+
///
/// Empty this folder
///
public static string FolderOperation_Empty => Resources.GetTranslatedString(@"FolderOperation_Empty");
+
///
/// Mark all as read
///
public static string FolderOperation_MarkAllAsRead => Resources.GetTranslatedString(@"FolderOperation_MarkAllAsRead");
+
///
/// Move
///
public static string FolderOperation_Move => Resources.GetTranslatedString(@"FolderOperation_Move");
+
///
/// Move to {0}
///
public static string DragMoveToFolderCaption => Resources.GetTranslatedString(@"DragMoveToFolderCaption");
+
///
/// None
///
public static string FolderOperation_None => Resources.GetTranslatedString(@"FolderOperation_None");
+
///
/// Pin
///
public static string FolderOperation_Pin => Resources.GetTranslatedString(@"FolderOperation_Pin");
+
///
/// Rename
///
public static string FolderOperation_Rename => Resources.GetTranslatedString(@"FolderOperation_Rename");
+
///
/// Unpin
///
public static string FolderOperation_Unpin => Resources.GetTranslatedString(@"FolderOperation_Unpin");
+
///
/// Archive
///
public static string HoverActionOption_Archive => Resources.GetTranslatedString(@"HoverActionOption_Archive");
+
///
/// Delete
///
public static string HoverActionOption_Delete => Resources.GetTranslatedString(@"HoverActionOption_Delete");
+
///
/// Move to Junk
///
public static string HoverActionOption_MoveJunk => Resources.GetTranslatedString(@"HoverActionOption_MoveJunk");
+
///
/// Flag / Unflag
///
public static string HoverActionOption_ToggleFlag => Resources.GetTranslatedString(@"HoverActionOption_ToggleFlag");
+
///
/// Read / Unread
///
public static string HoverActionOption_ToggleRead => Resources.GetTranslatedString(@"HoverActionOption_ToggleRead");
+
///
/// Inbox
///
public static string MergedAccountCommonFolderInbox => Resources.GetTranslatedString(@"MergedAccountCommonFolderInbox");
+
///
/// Sent
///
public static string MergedAccountCommonFolderSent => Resources.GetTranslatedString(@"MergedAccountCommonFolderSent");
+
///
/// Draft
///
public static string MergedAccountCommonFolderDraft => Resources.GetTranslatedString(@"MergedAccountCommonFolderDraft");
+
///
/// Junk
///
public static string MergedAccountCommonFolderJunk => Resources.GetTranslatedString(@"MergedAccountCommonFolderJunk");
+
///
/// Deleted
///
public static string MergedAccountCommonFolderTrash => Resources.GetTranslatedString(@"MergedAccountCommonFolderTrash");
+
///
/// Archive
///
public static string MergedAccountCommonFolderArchive => Resources.GetTranslatedString(@"MergedAccountCommonFolderArchive");
+
///
/// Account type
///
public static string IMAPSetupDialog_AccountType => Resources.GetTranslatedString(@"IMAPSetupDialog_AccountType");
+
///
/// Display Name
///
public static string IMAPSetupDialog_DisplayName => Resources.GetTranslatedString(@"IMAPSetupDialog_DisplayName");
+
///
/// eg. John Doe
///
public static string IMAPSetupDialog_DisplayNamePlaceholder => Resources.GetTranslatedString(@"IMAPSetupDialog_DisplayNamePlaceholder");
+
///
/// Incoming mail server
///
public static string IMAPSetupDialog_IncomingMailServer => Resources.GetTranslatedString(@"IMAPSetupDialog_IncomingMailServer");
+
///
/// Port
///
public static string IMAPSetupDialog_IncomingMailServerPort => Resources.GetTranslatedString(@"IMAPSetupDialog_IncomingMailServerPort");
+
///
/// Email address
///
public static string IMAPSetupDialog_MailAddress => Resources.GetTranslatedString(@"IMAPSetupDialog_MailAddress");
+
///
/// someone@example.com
///
public static string IMAPSetupDialog_MailAddressPlaceholder => Resources.GetTranslatedString(@"IMAPSetupDialog_MailAddressPlaceholder");
+
///
/// Outgoing (SMTP) mail server
///
public static string IMAPSetupDialog_OutgoingMailServer => Resources.GetTranslatedString(@"IMAPSetupDialog_OutgoingMailServer");
+
///
/// Outgoing server password
///
public static string IMAPSetupDialog_OutgoingMailServerPassword => Resources.GetTranslatedString(@"IMAPSetupDialog_OutgoingMailServerPassword");
+
///
/// Port
///
public static string IMAPSetupDialog_OutgoingMailServerPort => Resources.GetTranslatedString(@"IMAPSetupDialog_OutgoingMailServerPort");
+
///
/// Outgoing server requires authentication
///
public static string IMAPSetupDialog_OutgoingMailServerRequireAuthentication => Resources.GetTranslatedString(@"IMAPSetupDialog_OutgoingMailServerRequireAuthentication");
+
///
/// Outgoing server user name
///
public static string IMAPSetupDialog_OutgoingMailServerUsername => Resources.GetTranslatedString(@"IMAPSetupDialog_OutgoingMailServerUsername");
+
///
/// Password
///
public static string IMAPSetupDialog_Password => Resources.GetTranslatedString(@"IMAPSetupDialog_Password");
+
///
/// Require SSL for incoming email
///
public static string IMAPSetupDialog_RequireSSLForIncomingMail => Resources.GetTranslatedString(@"IMAPSetupDialog_RequireSSLForIncomingMail");
+
///
/// Require SSL for outgoing email
///
public static string IMAPSetupDialog_RequireSSLForOutgoingMail => Resources.GetTranslatedString(@"IMAPSetupDialog_RequireSSLForOutgoingMail");
+
///
/// Advanced IMAP Configuration
///
public static string IMAPSetupDialog_Title => Resources.GetTranslatedString(@"IMAPSetupDialog_Title");
+
///
/// Use the same username and password for sending email
///
public static string IMAPSetupDialog_UseSameConfig => Resources.GetTranslatedString(@"IMAPSetupDialog_UseSameConfig");
+
///
/// Username
///
public static string IMAPSetupDialog_Username => Resources.GetTranslatedString(@"IMAPSetupDialog_Username");
+
///
/// johndoe, johndoe@fabrikam.com, domain/johndoe
///
public static string IMAPSetupDialog_UsernamePlaceholder => Resources.GetTranslatedString(@"IMAPSetupDialog_UsernamePlaceholder");
+
+ ///
+ /// Connection Failed
+ ///
+ public static string IMAPSetupDialog_ConnectionFailedTitle => Resources.GetTranslatedString(@"IMAPSetupDialog_ConnectionFailedTitle");
+
+
+ ///
+ /// IMAP connection failed.
+ ///
+ public static string IMAPSetupDialog_ConnectionFailedMessage => Resources.GetTranslatedString(@"IMAPSetupDialog_ConnectionFailedMessage");
+
+
///
/// Image rendering is disabled for this message.
///
public static string ImageRenderingDisabled => Resources.GetTranslatedString(@"ImageRenderingDisabled");
+
///
/// Enable
///
public static string InfoBarAction_Enable => Resources.GetTranslatedString(@"InfoBarAction_Enable");
+
///
/// This folder is disabled for synchronization.
///
public static string InfoBarMessage_SynchronizationDisabledFolder => Resources.GetTranslatedString(@"InfoBarMessage_SynchronizationDisabledFolder");
+
///
/// Disabled Folder
///
public static string InfoBarTitle_SynchronizationDisabledFolder => Resources.GetTranslatedString(@"InfoBarTitle_SynchronizationDisabledFolder");
+
///
/// Error
///
public static string GeneralTitle_Error => Resources.GetTranslatedString(@"GeneralTitle_Error");
+
///
/// Warning
///
public static string GeneralTitle_Warning => Resources.GetTranslatedString(@"GeneralTitle_Warning");
+
///
/// Information
///
public static string GeneralTitle_Info => Resources.GetTranslatedString(@"GeneralTitle_Info");
+
///
/// {0} is created
///
public static string Info_AccountCreatedMessage => Resources.GetTranslatedString(@"Info_AccountCreatedMessage");
+
///
/// Account Creation
///
public static string Info_AccountCreatedTitle => Resources.GetTranslatedString(@"Info_AccountCreatedTitle");
+
///
/// Account Creation Failed
///
public static string Info_AccountCreationFailedTitle => Resources.GetTranslatedString(@"Info_AccountCreationFailedTitle");
+
///
/// {0} is successfuly deleted.
///
public static string Info_AccountDeletedMessage => Resources.GetTranslatedString(@"Info_AccountDeletedMessage");
+
///
/// Account Deleted
///
public static string Info_AccountDeletedTitle => Resources.GetTranslatedString(@"Info_AccountDeletedTitle");
+
///
/// Failed
///
public static string Info_AccountIssueFixFailedTitle => Resources.GetTranslatedString(@"Info_AccountIssueFixFailedTitle");
+
///
/// Fixed all account issues.
///
public static string Info_AccountIssueFixSuccessMessage => Resources.GetTranslatedString(@"Info_AccountIssueFixSuccessMessage");
+
///
/// Success
///
public static string Info_AccountIssueFixSuccessTitle => Resources.GetTranslatedString(@"Info_AccountIssueFixSuccessTitle");
+
///
/// Can't open this attachment.
///
public static string Info_AttachmentOpenFailedMessage => Resources.GetTranslatedString(@"Info_AttachmentOpenFailedMessage");
+
///
/// Failed
///
public static string Info_AttachmentOpenFailedTitle => Resources.GetTranslatedString(@"Info_AttachmentOpenFailedTitle");
+
///
/// Can't save this attachment.
///
public static string Info_AttachmentSaveFailedMessage => Resources.GetTranslatedString(@"Info_AttachmentSaveFailedMessage");
+
///
/// Failed
///
public static string Info_AttachmentSaveFailedTitle => Resources.GetTranslatedString(@"Info_AttachmentSaveFailedTitle");
+
///
/// Attachment is saved.
///
public static string Info_AttachmentSaveSuccessMessage => Resources.GetTranslatedString(@"Info_AttachmentSaveSuccessMessage");
+
///
/// Attachment Saved
///
public static string Info_AttachmentSaveSuccessTitle => Resources.GetTranslatedString(@"Info_AttachmentSaveSuccessTitle");
+
///
/// Background execution for the app is denied. This may affect background synchronization and live notifications.
///
public static string Info_BackgroundExecutionDeniedMessage => Resources.GetTranslatedString(@"Info_BackgroundExecutionDeniedMessage");
+
///
/// Denied Background Execution
///
public static string Info_BackgroundExecutionDeniedTitle => Resources.GetTranslatedString(@"Info_BackgroundExecutionDeniedTitle");
+
///
/// Unknown exception occurred when registering background synchronizer.
///
public static string Info_BackgroundExecutionUnknownErrorMessage => Resources.GetTranslatedString(@"Info_BackgroundExecutionUnknownErrorMessage");
+
///
/// Background Execution Failure
///
public static string Info_BackgroundExecutionUnknownErrorTitle => Resources.GetTranslatedString(@"Info_BackgroundExecutionUnknownErrorTitle");
+
///
/// Couldn't locate the MIME file. Synchronizing may help.
///
public static string Info_ComposerMissingMIMEMessage => Resources.GetTranslatedString(@"Info_ComposerMissingMIMEMessage");
+
///
/// Failed
///
public static string Info_ComposerMissingMIMETitle => Resources.GetTranslatedString(@"Info_ComposerMissingMIMETitle");
+
///
/// This contact is already in the recipient list.
///
public static string Info_ContactExistsMessage => Resources.GetTranslatedString(@"Info_ContactExistsMessage");
+
///
/// Contact Exists
///
public static string Info_ContactExistsTitle => Resources.GetTranslatedString(@"Info_ContactExistsTitle");
+
///
/// Draft folder is missing for this account. Please check your account settings.
///
public static string Info_DraftFolderMissingMessage => Resources.GetTranslatedString(@"Info_DraftFolderMissingMessage");
+
///
/// Missing Draft Folder
///
public static string Info_DraftFolderMissingTitle => Resources.GetTranslatedString(@"Info_DraftFolderMissingTitle");
+
///
/// Failed to launch file
///
public static string Info_FileLaunchFailedTitle => Resources.GetTranslatedString(@"Info_FileLaunchFailedTitle");
+
///
/// '{0}' is not a valid e-mail address.
///
public static string Info_InvalidAddressMessage => Resources.GetTranslatedString(@"Info_InvalidAddressMessage");
+
///
/// Invalid Address
///
public static string Info_InvalidAddressTitle => Resources.GetTranslatedString(@"Info_InvalidAddressTitle");
+
///
/// You can't move selected mails to this folder.
///
public static string Info_InvalidMoveTargetMessage => Resources.GetTranslatedString(@"Info_InvalidMoveTargetMessage");
+
///
/// Invalid Move Target
///
public static string Info_InvalidMoveTargetTitle => Resources.GetTranslatedString(@"Info_InvalidMoveTargetTitle");
+
///
/// There are no logs to share.
///
public static string Info_LogsNotFoundMessage => Resources.GetTranslatedString(@"Info_LogsNotFoundMessage");
+
///
/// Logs Not Found
///
public static string Info_LogsNotFoundTitle => Resources.GetTranslatedString(@"Info_LogsNotFoundTitle");
+
///
/// {0} is saved to selected folder.
///
public static string Info_LogsSavedMessage => Resources.GetTranslatedString(@"Info_LogsSavedMessage");
+
///
/// Saved
///
public static string Info_LogsSavedTitle => Resources.GetTranslatedString(@"Info_LogsSavedTitle");
+
///
/// This mail is corrupted or can't be opened. {0}
///
public static string Info_MailRenderingFailedMessage => Resources.GetTranslatedString(@"Info_MailRenderingFailedMessage");
+
///
/// Render Failed
///
public static string Info_MailRenderingFailedTitle => Resources.GetTranslatedString(@"Info_MailRenderingFailedTitle");
+
///
/// This message is corrupted.
///
public static string Info_MessageCorruptedMessage => Resources.GetTranslatedString(@"Info_MessageCorruptedMessage");
+
///
/// Error
///
public static string Info_MessageCorruptedTitle => Resources.GetTranslatedString(@"Info_MessageCorruptedTitle");
+
///
/// {0} doesn't exist for this account.
///
public static string Info_MissingFolderMessage => Resources.GetTranslatedString(@"Info_MissingFolderMessage");
+
///
/// Missing Folder
///
public static string Info_MissingFolderTitle => Resources.GetTranslatedString(@"Info_MissingFolderTitle");
+
///
/// Success
///
public static string Info_PDFSaveSuccessTitle => Resources.GetTranslatedString(@"Info_PDFSaveSuccessTitle");
+
///
/// Failed to save PDF file
///
public static string Info_PDFSaveFailedTitle => Resources.GetTranslatedString(@"Info_PDFSaveFailedTitle");
+
///
/// PDF file is saved to {0}
///
public static string Info_PDFSaveSuccessMessage => Resources.GetTranslatedString(@"Info_PDFSaveSuccessMessage");
+
///
/// Looks like this product has already been purchased before.
///
public static string Info_PurchaseExistsMessage => Resources.GetTranslatedString(@"Info_PurchaseExistsMessage");
+
///
/// Existing Product
///
public static string Info_PurchaseExistsTitle => Resources.GetTranslatedString(@"Info_PurchaseExistsTitle");
+
///
/// Thank You
///
public static string Info_PurchaseThankYouMessage => Resources.GetTranslatedString(@"Info_PurchaseThankYouMessage");
+
///
/// Purchase successful
///
public static string Info_PurchaseThankYouTitle => Resources.GetTranslatedString(@"Info_PurchaseThankYouTitle");
+
///
/// Failed to Create Requests
///
public static string Info_RequestCreationFailedTitle => Resources.GetTranslatedString(@"Info_RequestCreationFailedTitle");
+
///
/// There was a network issue with your review.
///
public static string Info_ReviewNetworkErrorMessage => Resources.GetTranslatedString(@"Info_ReviewNetworkErrorMessage");
+
///
/// Network Issue
///
public static string Info_ReviewNetworkErrorTitle => Resources.GetTranslatedString(@"Info_ReviewNetworkErrorTitle");
+
///
/// All feedbacks are appreciated. Thank you for the review!
///
public static string Info_ReviewNewMessage => Resources.GetTranslatedString(@"Info_ReviewNewMessage");
+
///
/// Thank you
///
public static string Info_ReviewSuccessTitle => Resources.GetTranslatedString(@"Info_ReviewSuccessTitle");
+
///
/// There was an unknown issue with your review. ({0})
///
public static string Info_ReviewUnknownErrorMessage => Resources.GetTranslatedString(@"Info_ReviewUnknownErrorMessage");
+
///
/// Unknown Error
///
public static string Info_ReviewUnknownErrorTitle => Resources.GetTranslatedString(@"Info_ReviewUnknownErrorTitle");
+
///
/// Thank you for the updated review.
///
public static string Info_ReviewUpdatedMessage => Resources.GetTranslatedString(@"Info_ReviewUpdatedMessage");
+
///
/// Disabled signature for this account
///
public static string Info_SignatureDisabledMessage => Resources.GetTranslatedString(@"Info_SignatureDisabledMessage");
+
///
/// Success
///
public static string Info_SignatureDisabledTitle => Resources.GetTranslatedString(@"Info_SignatureDisabledTitle");
+
///
/// New signature is saved
///
public static string Info_SignatureSavedMessage => Resources.GetTranslatedString(@"Info_SignatureSavedMessage");
+
///
/// Success
///
public static string Info_SignatureSavedTitle => Resources.GetTranslatedString(@"Info_SignatureSavedTitle");
+
///
/// Canceled
///
public static string Info_SyncCanceledMessage => Resources.GetTranslatedString(@"Info_SyncCanceledMessage");
+
///
/// Synchronization
///
public static string Info_SyncCanceledTitle => Resources.GetTranslatedString(@"Info_SyncCanceledTitle");
+
///
/// Synchronization Failed
///
public static string Info_SyncFailedTitle => Resources.GetTranslatedString(@"Info_SyncFailedTitle");
+
///
/// This functionality is not implemented yet.
///
public static string Info_UnsupportedFunctionalityDescription => Resources.GetTranslatedString(@"Info_UnsupportedFunctionalityDescription");
+
///
/// Unsupported
///
public static string Info_UnsupportedFunctionalityTitle => Resources.GetTranslatedString(@"Info_UnsupportedFunctionalityTitle");
+
///
/// Invalid Unsubscribe Uri
///
public static string Info_UnsubscribeLinkInvalidTitle => Resources.GetTranslatedString(@"Info_UnsubscribeLinkInvalidTitle");
+
///
/// This unsubscribe link is invalid. Failed to unsubscribe from the list.
///
public static string Info_UnsubscribeLinkInvalidMessage => Resources.GetTranslatedString(@"Info_UnsubscribeLinkInvalidMessage");
+
///
/// Successfully unsubscribed from {0}.
///
public static string Info_UnsubscribeSuccessMessage => Resources.GetTranslatedString(@"Info_UnsubscribeSuccessMessage");
+
///
/// Failed to unsubscribe
///
public static string Info_UnsubscribeErrorMessage => Resources.GetTranslatedString(@"Info_UnsubscribeErrorMessage");
+
///
/// Authentication method
///
public static string ImapAdvancedSetupDialog_AuthenticationMethod => Resources.GetTranslatedString(@"ImapAdvancedSetupDialog_AuthenticationMethod");
+
///
/// Connection security
///
public static string ImapAdvancedSetupDialog_ConnectionSecurity => Resources.GetTranslatedString(@"ImapAdvancedSetupDialog_ConnectionSecurity");
+
///
/// Auto
///
public static string ImapAuthenticationMethod_Auto => Resources.GetTranslatedString(@"ImapAuthenticationMethod_Auto");
+
///
/// CRAM-MD5
///
public static string ImapAuthenticationMethod_CramMD5 => Resources.GetTranslatedString(@"ImapAuthenticationMethod_CramMD5");
+
///
/// DIGEST-MD5
///
public static string ImapAuthenticationMethod_DigestMD5 => Resources.GetTranslatedString(@"ImapAuthenticationMethod_DigestMD5");
+
///
/// No authentication
///
public static string ImapAuthenticationMethod_None => Resources.GetTranslatedString(@"ImapAuthenticationMethod_None");
+
///
/// Normal password
///
public static string ImapAuthenticationMethod_Plain => Resources.GetTranslatedString(@"ImapAuthenticationMethod_Plain");
+
///
/// Encrypted password
///
public static string ImapAuthenticationMethod_EncryptedPassword => Resources.GetTranslatedString(@"ImapAuthenticationMethod_EncryptedPassword");
+
///
/// NTLM
///
public static string ImapAuthenticationMethod_Ntlm => Resources.GetTranslatedString(@"ImapAuthenticationMethod_Ntlm");
+
///
/// None
///
public static string ImapConnectionSecurity_None => Resources.GetTranslatedString(@"ImapConnectionSecurity_None");
+
///
/// SSL/TLS
///
public static string ImapConnectionSecurity_SslTls => Resources.GetTranslatedString(@"ImapConnectionSecurity_SslTls");
+
///
/// STARTTLS
///
public static string ImapConnectionSecurity_StartTls => Resources.GetTranslatedString(@"ImapConnectionSecurity_StartTls");
+
///
/// Auto
///
public static string ImapConnectionSecurity_Auto => Resources.GetTranslatedString(@"ImapConnectionSecurity_Auto");
+
///
/// Justify
///
public static string Justify => Resources.GetTranslatedString(@"Justify");
+
///
/// Left
///
public static string Left => Resources.GetTranslatedString(@"Left");
+
///
/// Link
///
public static string Link => Resources.GetTranslatedString(@"Link");
+
///
/// you must have at least 2 accounts to create link link will be removed on save
///
public static string LinkedAccountsCreatePolicyMessage => Resources.GetTranslatedString(@"LinkedAccountsCreatePolicyMessage");
+
///
/// Linked Accounts
///
public static string LinkedAccountsTitle => Resources.GetTranslatedString(@"LinkedAccountsTitle");
+
///
/// Always Move to Focused
///
public static string MailOperation_AlwaysMoveFocused => Resources.GetTranslatedString(@"MailOperation_AlwaysMoveFocused");
+
///
/// Always Move to Other
///
public static string MailOperation_AlwaysMoveOther => Resources.GetTranslatedString(@"MailOperation_AlwaysMoveOther");
+
///
/// Archive
///
public static string MailOperation_Archive => Resources.GetTranslatedString(@"MailOperation_Archive");
+
///
/// Clear flag
///
public static string MailOperation_ClearFlag => Resources.GetTranslatedString(@"MailOperation_ClearFlag");
+
///
/// Dark
///
public static string MailOperation_DarkEditor => Resources.GetTranslatedString(@"MailOperation_DarkEditor");
+
///
/// Delete
///
public static string MailOperation_Delete => Resources.GetTranslatedString(@"MailOperation_Delete");
+
///
/// Export to PDF
///
public static string MailOperation_ExportPDF => Resources.GetTranslatedString(@"MailOperation_ExportPDF");
+
///
/// Find
///
public static string MailOperation_Find => Resources.GetTranslatedString(@"MailOperation_Find");
+
///
/// Forward
///
public static string MailOperation_Forward => Resources.GetTranslatedString(@"MailOperation_Forward");
+
///
/// Ignore
///
public static string MailOperation_Ignore => Resources.GetTranslatedString(@"MailOperation_Ignore");
+
///
/// Light
///
public static string MailOperation_LightEditor => Resources.GetTranslatedString(@"MailOperation_LightEditor");
+
///
/// Mark as junk
///
public static string MailOperation_MarkAsJunk => Resources.GetTranslatedString(@"MailOperation_MarkAsJunk");
+
///
/// Mark as read
///
public static string MailOperation_MarkAsRead => Resources.GetTranslatedString(@"MailOperation_MarkAsRead");
+
///
/// Mark as unread
///
public static string MailOperation_MarkAsUnread => Resources.GetTranslatedString(@"MailOperation_MarkAsUnread");
+
///
/// Mark as Not Junk
///
public static string MailOperation_MarkNotJunk => Resources.GetTranslatedString(@"MailOperation_MarkNotJunk");
+
///
/// Move
///
public static string MailOperation_Move => Resources.GetTranslatedString(@"MailOperation_Move");
+
///
/// Move to Focused
///
public static string MailOperation_MoveFocused => Resources.GetTranslatedString(@"MailOperation_MoveFocused");
+
///
/// Move to Junk
///
public static string MailOperation_MoveJunk => Resources.GetTranslatedString(@"MailOperation_MoveJunk");
+
///
/// Move to Other
///
public static string MailOperation_MoveOther => Resources.GetTranslatedString(@"MailOperation_MoveOther");
+
///
/// Navigate
///
public static string MailOperation_Navigate => Resources.GetTranslatedString(@"MailOperation_Navigate");
+
///
/// Print
///
public static string MailOperation_Print => Resources.GetTranslatedString(@"MailOperation_Print");
+
///
/// Reply
///
public static string MailOperation_Reply => Resources.GetTranslatedString(@"MailOperation_Reply");
+
///
/// Reply all
///
public static string MailOperation_ReplyAll => Resources.GetTranslatedString(@"MailOperation_ReplyAll");
+
///
/// Save As
///
public static string MailOperation_SaveAs => Resources.GetTranslatedString(@"MailOperation_SaveAs");
+
///
/// Set flag
///
public static string MailOperation_SetFlag => Resources.GetTranslatedString(@"MailOperation_SetFlag");
+
///
/// Unarchive
///
public static string MailOperation_Unarchive => Resources.GetTranslatedString(@"MailOperation_Unarchive");
+
///
/// Zoom
///
public static string MailOperation_Zoom => Resources.GetTranslatedString(@"MailOperation_Zoom");
+
///
/// {0} item(s) selected
///
public static string MailsSelected => Resources.GetTranslatedString(@"MailsSelected");
+
///
/// Mark as flagged/unflagged
///
public static string MarkFlagUnflag => Resources.GetTranslatedString(@"MarkFlagUnflag");
+
///
/// Mark as read/unread
///
public static string MarkReadUnread => Resources.GetTranslatedString(@"MarkReadUnread");
+
///
/// Manage Accounts
///
public static string MenuManageAccounts => Resources.GetTranslatedString(@"MenuManageAccounts");
+
///
/// New Mail
///
public static string MenuNewMail => Resources.GetTranslatedString(@"MenuNewMail");
+
///
/// accounts
///
public static string MenuMergedAccountItemAccountsSuffix => Resources.GetTranslatedString(@"MenuMergedAccountItemAccountsSuffix");
+
///
/// Rate Wino
///
public static string MenuRate => Resources.GetTranslatedString(@"MenuRate");
+
///
/// Settings
///
public static string MenuSettings => Resources.GetTranslatedString(@"MenuSettings");
+
///
/// Available Accounts
///
public static string MergedAccountsAvailableAccountsTitle => Resources.GetTranslatedString(@"MergedAccountsAvailableAccountsTitle");
+
///
/// More
///
public static string More => Resources.GetTranslatedString(@"More");
+
///
/// {0} is not a valid folder for this mail.
///
public static string MoveMailDialog_InvalidFolderMessage => Resources.GetTranslatedString(@"MoveMailDialog_InvalidFolderMessage");
+
///
/// Pick a folder
///
public static string MoveMailDialog_Title => Resources.GetTranslatedString(@"MoveMailDialog_Title");
+
///
/// Account Name
///
public static string NewAccountDialog_AccountName => Resources.GetTranslatedString(@"NewAccountDialog_AccountName");
+
///
/// Personal
///
public static string NewAccountDialog_AccountNameDefaultValue => Resources.GetTranslatedString(@"NewAccountDialog_AccountNameDefaultValue");
+
///
/// eg. Personal Mail
///
public static string NewAccountDialog_AccountNamePlaceholder => Resources.GetTranslatedString(@"NewAccountDialog_AccountNamePlaceholder");
+
///
/// Add New Account
///
public static string NewAccountDialog_Title => Resources.GetTranslatedString(@"NewAccountDialog_Title");
+
///
/// No message selected
///
public static string NoMailSelected => Resources.GetTranslatedString(@"NoMailSelected");
+
///
/// No messages match your search criteria
///
public static string NoMessageCrieteria => Resources.GetTranslatedString(@"NoMessageCrieteria");
+
///
/// This folder is empty
///
public static string NoMessageEmptyFolder => Resources.GetTranslatedString(@"NoMessageEmptyFolder");
+
///
/// You have {0} new mails
///
public static string Notifications_MultipleNotificationsMessage => Resources.GetTranslatedString(@"Notifications_MultipleNotificationsMessage");
+
///
/// New Mails
///
public static string Notifications_MultipleNotificationsTitle => Resources.GetTranslatedString(@"Notifications_MultipleNotificationsTitle");
+
///
/// Checkout new version {0}
///
public static string Notifications_WinoUpdatedMessage => Resources.GetTranslatedString(@"Notifications_WinoUpdatedMessage");
+
///
/// Wino Mail has been updated.
///
public static string Notifications_WinoUpdatedTitle => Resources.GetTranslatedString(@"Notifications_WinoUpdatedTitle");
+
///
/// Other
///
public static string Other => Resources.GetTranslatedString(@"Other");
+
///
/// Default
///
public static string PaneLengthOption_Default => Resources.GetTranslatedString(@"PaneLengthOption_Default");
+
///
/// Extra Large
///
public static string PaneLengthOption_ExtraLarge => Resources.GetTranslatedString(@"PaneLengthOption_ExtraLarge");
+
///
/// Large
///
public static string PaneLengthOption_Large => Resources.GetTranslatedString(@"PaneLengthOption_Large");
+
///
/// Medium
///
public static string PaneLengthOption_Medium => Resources.GetTranslatedString(@"PaneLengthOption_Medium");
+
///
/// Micro
///
public static string PaneLengthOption_Micro => Resources.GetTranslatedString(@"PaneLengthOption_Micro");
+
///
/// Small
///
public static string PaneLengthOption_Small => Resources.GetTranslatedString(@"PaneLengthOption_Small");
+
///
/// Photos
///
public static string Photos => Resources.GetTranslatedString(@"Photos");
+
///
/// Preparing folders
///
public static string PreparingFoldersMessage => Resources.GetTranslatedString(@"PreparingFoldersMessage");
+
///
/// Google Account
///
public static string ProviderDetail_Gmail_Description => Resources.GetTranslatedString(@"ProviderDetail_Gmail_Description");
+
///
/// Custom IMAP/SMTP server
///
public static string ProviderDetail_IMAP_Description => Resources.GetTranslatedString(@"ProviderDetail_IMAP_Description");
+
///
/// IMAP Server
///
public static string ProviderDetail_IMAP_Title => Resources.GetTranslatedString(@"ProviderDetail_IMAP_Title");
+
+ ///
+ /// Protocol logs are available for diagnostics.
+ ///
+ public static string ProtocolLogAvailable_Message => Resources.GetTranslatedString(@"ProtocolLogAvailable_Message");
+
+
///
/// Results
///
public static string Results => Resources.GetTranslatedString(@"Results");
+
///
/// Right
///
public static string Right => Resources.GetTranslatedString(@"Right");
+
///
/// up to date
///
public static string SynchronizationFolderReport_Success => Resources.GetTranslatedString(@"SynchronizationFolderReport_Success");
+
///
/// synchronization is failed
///
public static string SynchronizationFolderReport_Failed => Resources.GetTranslatedString(@"SynchronizationFolderReport_Failed");
+
///
/// Search
///
public static string SearchBarPlaceholder => Resources.GetTranslatedString(@"SearchBarPlaceholder");
+
///
/// Searching in
///
public static string SearchingIn => Resources.GetTranslatedString(@"SearchingIn");
+
///
/// Results
///
public static string SearchPivotName => Resources.GetTranslatedString(@"SearchPivotName");
+
///
/// Go to issue tracker GitHub repository.
///
public static string SettingsAboutGithub_Description => Resources.GetTranslatedString(@"SettingsAboutGithub_Description");
+
///
/// GitHub
///
public static string SettingsAboutGithub_Title => Resources.GetTranslatedString(@"SettingsAboutGithub_Title");
+
///
/// Append messages to Sent folder
///
public static string SettingsAccountManagementAppendMessage_Title => Resources.GetTranslatedString(@"SettingsAccountManagementAppendMessage_Title");
+
///
/// Create a copy of the message in Sent folder after the draft is sent. Enable this if you don't see your mails after you sent them in Sent folder.
///
public static string SettingsAccountManagementAppendMessage_Description => Resources.GetTranslatedString(@"SettingsAccountManagementAppendMessage_Description");
+
///
/// Edit Linked Inbox
///
public static string SettingsEditLinkedInbox_Title => Resources.GetTranslatedString(@"SettingsEditLinkedInbox_Title");
+
///
/// Add / remove accounts, rename or break the link between accounts.
///
public static string SettingsEditLinkedInbox_Description => Resources.GetTranslatedString(@"SettingsEditLinkedInbox_Description");
+
///
/// Version
///
public static string SettingsAboutVersion => Resources.GetTranslatedString(@"SettingsAboutVersion");
+
///
/// Lightweight mail client for Windows device families.
///
public static string SettingsAboutWinoDescription => Resources.GetTranslatedString(@"SettingsAboutWinoDescription");
+
///
/// Learn more about Wino.
///
public static string SettingsAbout_Description => Resources.GetTranslatedString(@"SettingsAbout_Description");
+
///
/// About
///
public static string SettingsAbout_Title => Resources.GetTranslatedString(@"SettingsAbout_Title");
+
///
/// Change application's accent color
///
public static string SettingsAccentColor_Description => Resources.GetTranslatedString(@"SettingsAccentColor_Description");
+
///
/// Accent Color
///
public static string SettingsAccentColor_Title => Resources.GetTranslatedString(@"SettingsAccentColor_Title");
+
///
/// Use my Windows accent color
///
public static string SettingsAccentColor_UseWindowsAccentColor => Resources.GetTranslatedString(@"SettingsAccentColor_UseWindowsAccentColor");
+
///
/// Change the name of the account.
///
public static string SettingsAccountName_Description => Resources.GetTranslatedString(@"SettingsAccountName_Description");
+
///
/// Account Name
///
public static string SettingsAccountName_Title => Resources.GetTranslatedString(@"SettingsAccountName_Title");
+
///
/// Personalize Wino with different custom application themes for your like.
///
public static string SettingsApplicationTheme_Description => Resources.GetTranslatedString(@"SettingsApplicationTheme_Description");
+
///
/// Application Theme
///
public static string SettingsApplicationTheme_Title => Resources.GetTranslatedString(@"SettingsApplicationTheme_Title");
+
///
/// Select a theme from Wino's own collection for your taste or apply your own themes.
///
public static string SettingsAvailableThemes_Description => Resources.GetTranslatedString(@"SettingsAvailableThemes_Description");
+
///
/// Available Themes
///
public static string SettingsAvailableThemes_Title => Resources.GetTranslatedString(@"SettingsAvailableThemes_Title");
+
///
/// Auto select next item
///
public static string SettingsAutoSelectNextItem_Title => Resources.GetTranslatedString(@"SettingsAutoSelectNextItem_Title");
+
///
/// Select the next item after you delete or move a mail.
///
public static string SettingsAutoSelectNextItem_Description => Resources.GetTranslatedString(@"SettingsAutoSelectNextItem_Description");
+
///
/// Create your own custom theme with custom wallpaper and accent color.
///
public static string SettingsCustomTheme_Description => Resources.GetTranslatedString(@"SettingsCustomTheme_Description");
+
///
/// Custom Theme
///
public static string SettingsCustomTheme_Title => Resources.GetTranslatedString(@"SettingsCustomTheme_Title");
+
///
/// Configure System Folders
///
public static string SettingsConfigureSpecialFolders_Title => Resources.GetTranslatedString(@"SettingsConfigureSpecialFolders_Title");
+
///
/// Set folders with special functions. Folders such as Archive, Inbox, and Drafts are essential for Wino to function properly.
///
public static string SettingsConfigureSpecialFolders_Description => Resources.GetTranslatedString(@"SettingsConfigureSpecialFolders_Description");
+
///
/// Configure
///
public static string SettingConfigureSpecialFolders_Button => Resources.GetTranslatedString(@"SettingConfigureSpecialFolders_Button");
+
///
/// Failed to setup system folders
///
public static string Error_FailedToSetupSystemFolders_Title => Resources.GetTranslatedString(@"Error_FailedToSetupSystemFolders_Title");
+
///
/// Delete all e-mails and credentials associated with this account.
///
public static string SettingsDeleteAccount_Description => Resources.GetTranslatedString(@"SettingsDeleteAccount_Description");
+
///
/// Delete this account
///
public static string SettingsDeleteAccount_Title => Resources.GetTranslatedString(@"SettingsDeleteAccount_Title");
+
///
/// Should Wino ask you for comfirmation every time you try to permanently delete a mail using Shift + Del keys?
///
public static string SettingsDeleteProtection_Description => Resources.GetTranslatedString(@"SettingsDeleteProtection_Description");
+
///
/// Permanent Delete Protection
///
public static string SettingsDeleteProtection_Title => Resources.GetTranslatedString(@"SettingsDeleteProtection_Title");
+
///
/// For developers
///
public static string SettingsDiagnostics_Description => Resources.GetTranslatedString(@"SettingsDiagnostics_Description");
+
///
/// Diagnostics
///
public static string SettingsDiagnostics_Title => Resources.GetTranslatedString(@"SettingsDiagnostics_Title");
+
///
/// Get regular development updates, join roadmap discussions and provide feedback.
///
public static string SettingsDiscord_Description => Resources.GetTranslatedString(@"SettingsDiscord_Description");
+
///
/// Discord Channel
///
public static string SettingsDiscord_Title => Resources.GetTranslatedString(@"SettingsDiscord_Title");
+
///
/// Element theme selection is disabled when application theme is selected other than Default.
///
public static string SettingsElementThemeSelectionDisabled => Resources.GetTranslatedString(@"SettingsElementThemeSelectionDisabled");
+
///
/// Select a Windows theme for Wino
///
public static string SettingsElementTheme_Description => Resources.GetTranslatedString(@"SettingsElementTheme_Description");
+
///
/// Element Theme
///
public static string SettingsElementTheme_Title => Resources.GetTranslatedString(@"SettingsElementTheme_Title");
+
///
/// Enable hover actions
///
public static string SettingsEnableHoverActions_Title => Resources.GetTranslatedString(@"SettingsEnableHoverActions_Title");
+
///
/// Enable this to provide details about IMAP connectivity issuses you had during IMAP server setup.
///
public static string SettingsEnableIMAPLogs_Description => Resources.GetTranslatedString(@"SettingsEnableIMAPLogs_Description");
+
///
/// Enable IMAP Protocol Logs
///
public static string SettingsEnableIMAPLogs_Title => Resources.GetTranslatedString(@"SettingsEnableIMAPLogs_Title");
+
///
/// I might need logs for crashes to diagnose issues you have opened in GitHub. None of the logs will expose your credentials or sensetive information to public.
///
public static string SettingsEnableLogs_Description => Resources.GetTranslatedString(@"SettingsEnableLogs_Description");
+
///
/// Enable Logs
///
public static string SettingsEnableLogs_Title => Resources.GetTranslatedString(@"SettingsEnableLogs_Title");
+
///
/// Enable Signature
///
public static string SettingsEnableSignature => Resources.GetTranslatedString(@"SettingsEnableSignature");
+
///
/// Set whether Wino should expand this account's folders on startup.
///
public static string SettingsExpandOnStartup_Description => Resources.GetTranslatedString(@"SettingsExpandOnStartup_Description");
+
///
/// Expand Menu on Startup
///
public static string SettingsExpandOnStartup_Title => Resources.GetTranslatedString(@"SettingsExpandOnStartup_Title");
+
///
/// Manage external content settings when rendering mails.
///
public static string SettingsExternalContent_Description => Resources.GetTranslatedString(@"SettingsExternalContent_Description");
+
///
/// External Content
///
public static string SettingsExternalContent_Title => Resources.GetTranslatedString(@"SettingsExternalContent_Title");
+
///
/// Set whether Inbox should be split into two as Focused - Other.
///
public static string SettingsFocusedInbox_Description => Resources.GetTranslatedString(@"SettingsFocusedInbox_Description");
+
///
/// Focused Inbox
///
public static string SettingsFocusedInbox_Title => Resources.GetTranslatedString(@"SettingsFocusedInbox_Title");
+
///
/// Enable or disable specific folders for synchronization.
///
public static string SettingsFolderSync_Description => Resources.GetTranslatedString(@"SettingsFolderSync_Description");
+
///
/// Folder Synchronization
///
public static string SettingsFolderSync_Title => Resources.GetTranslatedString(@"SettingsFolderSync_Title");
+
///
/// Folder Configuration
///
public static string SettingsFolderOptions_Title => Resources.GetTranslatedString(@"SettingsFolderOptions_Title");
+
///
/// Change individual folder settings like enable/disable sync or show/hide unread badge.
///
public static string SettingsFolderOptions_Description => Resources.GetTranslatedString(@"SettingsFolderOptions_Description");
+
///
/// Center Action
///
public static string SettingsHoverActionCenter => Resources.GetTranslatedString(@"SettingsHoverActionCenter");
+
///
/// Left Action
///
public static string SettingsHoverActionLeft => Resources.GetTranslatedString(@"SettingsHoverActionLeft");
+
///
/// Right Action
///
public static string SettingsHoverActionRight => Resources.GetTranslatedString(@"SettingsHoverActionRight");
+
///
/// Select 3 actions to show up when you hover over the mails with cursor.
///
public static string SettingsHoverActions_Description => Resources.GetTranslatedString(@"SettingsHoverActions_Description");
+
///
/// Hover Actions
///
public static string SettingsHoverActions_Title => Resources.GetTranslatedString(@"SettingsHoverActions_Title");
+
///
/// Change display language for Wino.
///
public static string SettingsLanguage_Description => Resources.GetTranslatedString(@"SettingsLanguage_Description");
+
///
/// Display Language
///
public static string SettingsLanguage_Title => Resources.GetTranslatedString(@"SettingsLanguage_Title");
+
///
/// Language & Time
///
public static string SettingsLanguageTime_Title => Resources.GetTranslatedString(@"SettingsLanguageTime_Title");
+
///
/// Wino display language, preferred time format.
///
public static string SettingsLanguageTime_Description => Resources.GetTranslatedString(@"SettingsLanguageTime_Description");
+
///
/// Categories
///
public static string CategoriesFolderNameOverride => Resources.GetTranslatedString(@"CategoriesFolderNameOverride");
+
///
/// More
///
public static string MoreFolderNameOverride => Resources.GetTranslatedString(@"MoreFolderNameOverride");
+
///
/// Settings
///
public static string SettingsOptions_Title => Resources.GetTranslatedString(@"SettingsOptions_Title");
+
///
/// Merge multiple accounts into one. See mails from one Inbox together.
///
public static string SettingsLinkAccounts_Description => Resources.GetTranslatedString(@"SettingsLinkAccounts_Description");
+
///
/// Create Linked Accounts
///
public static string SettingsLinkAccounts_Title => Resources.GetTranslatedString(@"SettingsLinkAccounts_Title");
+
///
/// Modify the current link with the new accounts.
///
public static string SettingsLinkedAccountsSave_Description => Resources.GetTranslatedString(@"SettingsLinkedAccountsSave_Description");
+
///
/// Save Changes
///
public static string SettingsLinkedAccountsSave_Title => Resources.GetTranslatedString(@"SettingsLinkedAccountsSave_Title");
+
///
/// Load images automatically
///
public static string SettingsLoadImages_Title => Resources.GetTranslatedString(@"SettingsLoadImages_Title");
+
///
/// Load styles automatically
///
public static string SettingsLoadStyles_Title => Resources.GetTranslatedString(@"SettingsLoadStyles_Title");
+
///
/// Adjust the spacing for listing mails.
///
public static string SettingsMailSpacing_Description => Resources.GetTranslatedString(@"SettingsMailSpacing_Description");
+
///
/// Mail Spacing
///
public static string SettingsMailSpacing_Title => Resources.GetTranslatedString(@"SettingsMailSpacing_Title");
+
///
/// Create Nested Folders
///
public static string SettingsFolderMenuStyle_Title => Resources.GetTranslatedString(@"SettingsFolderMenuStyle_Title");
+
///
/// Change whether account folders should be nested inside an account menu item or not. Toggle this off if you like the old menu system in Windows Mail
///
public static string SettingsFolderMenuStyle_Description => Resources.GetTranslatedString(@"SettingsFolderMenuStyle_Description");
+
///
/// Notifications, signatures, synchronization and other settings per account.
///
public static string SettingsManageAccountSettings_Description => Resources.GetTranslatedString(@"SettingsManageAccountSettings_Description");
+
///
/// Manage Account Settings
///
public static string SettingsManageAccountSettings_Title => Resources.GetTranslatedString(@"SettingsManageAccountSettings_Title");
+
///
/// Reorder Accounts
///
@@ -2080,509 +2540,611 @@ namespace Wino.Core.Domain
///
public static string SettingsManageLink_Description => Resources.GetTranslatedString(@"SettingsManageLink_Description");
+
///
/// Manage Link
///
public static string SettingsManageLink_Title => Resources.GetTranslatedString(@"SettingsManageLink_Title");
+
///
/// Change what should happen to the selected item.
///
public static string SettingsMarkAsRead_Description => Resources.GetTranslatedString(@"SettingsMarkAsRead_Description");
+
///
/// Don't automatically mark item as read
///
public static string SettingsMarkAsRead_DontChange => Resources.GetTranslatedString(@"SettingsMarkAsRead_DontChange");
+
///
/// Seconds to wait:
///
public static string SettingsMarkAsRead_SecondsToWait => Resources.GetTranslatedString(@"SettingsMarkAsRead_SecondsToWait");
+
///
/// When viewed in the reading pane
///
public static string SettingsMarkAsRead_Timer => Resources.GetTranslatedString(@"SettingsMarkAsRead_Timer");
+
///
/// Mark item as read
///
public static string SettingsMarkAsRead_Title => Resources.GetTranslatedString(@"SettingsMarkAsRead_Title");
+
///
/// When selected
///
public static string SettingsMarkAsRead_WhenSelected => Resources.GetTranslatedString(@"SettingsMarkAsRead_WhenSelected");
+
///
/// Change how your messages should be organized in mail list.
///
public static string SettingsMessageList_Description => Resources.GetTranslatedString(@"SettingsMessageList_Description");
+
///
/// Message List
///
public static string SettingsMessageList_Title => Resources.GetTranslatedString(@"SettingsMessageList_Title");
+
///
/// You didn't setup any accounts yet.
///
public static string SettingsNoAccountSetupMessage => Resources.GetTranslatedString(@"SettingsNoAccountSetupMessage");
+
///
/// Turn on or off notifications for this account.
///
public static string SettingsNotifications_Description => Resources.GetTranslatedString(@"SettingsNotifications_Description");
+
///
/// Notifications
///
public static string SettingsNotifications_Title => Resources.GetTranslatedString(@"SettingsNotifications_Title");
+
///
/// Change the width of the mail list.
///
public static string SettingsPaneLength_Description => Resources.GetTranslatedString(@"SettingsPaneLength_Description");
+
///
/// Mail List Pane Length
///
public static string SettingsPaneLength_Title => Resources.GetTranslatedString(@"SettingsPaneLength_Title");
+
///
/// Show much more love ❤️ All donations are appreciated.
///
public static string SettingsPaypal_Description => Resources.GetTranslatedString(@"SettingsPaypal_Description");
+
///
/// Donate via PayPal
///
public static string SettingsPaypal_Title => Resources.GetTranslatedString(@"SettingsPaypal_Title");
+
///
/// Compact Mode
///
public static string SettingsPersonalizationMailDisplayCompactMode => Resources.GetTranslatedString(@"SettingsPersonalizationMailDisplayCompactMode");
+
///
/// Medium Mode
///
public static string SettingsPersonalizationMailDisplayMediumMode => Resources.GetTranslatedString(@"SettingsPersonalizationMailDisplayMediumMode");
+
///
/// Spacious Mode
///
public static string SettingsPersonalizationMailDisplaySpaciousMode => Resources.GetTranslatedString(@"SettingsPersonalizationMailDisplaySpaciousMode");
+
///
/// Change appearance of Wino as you like.
///
public static string SettingsPersonalization_Description => Resources.GetTranslatedString(@"SettingsPersonalization_Description");
+
///
/// Personalization
///
public static string SettingsPersonalization_Title => Resources.GetTranslatedString(@"SettingsPersonalization_Title");
+
///
/// Review privacy policy.
///
public static string SettingsPrivacyPolicy_Description => Resources.GetTranslatedString(@"SettingsPrivacyPolicy_Description");
+
///
/// Privacy Policy
///
public static string SettingsPrivacyPolicy_Title => Resources.GetTranslatedString(@"SettingsPrivacyPolicy_Title");
+
///
/// Mail rendering options.
///
public static string SettingsReadingPane_Description => Resources.GetTranslatedString(@"SettingsReadingPane_Description");
+
///
/// Reading Pane
///
public static string SettingsReadingPane_Title => Resources.GetTranslatedString(@"SettingsReadingPane_Title");
+
///
/// Default Reader Font
///
public static string SettingsReaderFont_Title => Resources.GetTranslatedString(@"SettingsReaderFont_Title");
+
///
/// Change the default font family and font size for reading mails.
///
public static string SettingsReaderFontFamily_Description => Resources.GetTranslatedString(@"SettingsReaderFontFamily_Description");
+
///
/// Font Family
///
public static string SettingsFontFamily_Title => Resources.GetTranslatedString(@"SettingsFontFamily_Title");
+
///
/// Font Size
///
public static string SettingsFontSize_Title => Resources.GetTranslatedString(@"SettingsFontSize_Title");
+
///
/// Preview
///
public static string SettingsFontPreview_Title => Resources.GetTranslatedString(@"SettingsFontPreview_Title");
+
///
/// Default Composer Font
///
public static string SettingsComposerFont_Title => Resources.GetTranslatedString(@"SettingsComposerFont_Title");
+
///
/// Change the default font family and font size for composing mails.
///
public static string SettingsComposerFontFamily_Description => Resources.GetTranslatedString(@"SettingsComposerFontFamily_Description");
+
///
/// Change the display name of the linked accounts.
///
public static string SettingsRenameMergeAccount_Description => Resources.GetTranslatedString(@"SettingsRenameMergeAccount_Description");
+
///
/// Rename
///
public static string SettingsRenameMergeAccount_Title => Resources.GetTranslatedString(@"SettingsRenameMergeAccount_Title");
+
///
/// This will allow you to click on the headers in messages list and go to specific date
///
public static string SettingsSemanticZoom_Description => Resources.GetTranslatedString(@"SettingsSemanticZoom_Description");
+
///
/// Semantic Zoom for Date Headers
///
public static string SettingsSemanticZoom_Title => Resources.GetTranslatedString(@"SettingsSemanticZoom_Title");
+
///
/// Hide/show thepreview text.
///
public static string SettingsShowPreviewText_Description => Resources.GetTranslatedString(@"SettingsShowPreviewText_Description");
+
///
/// Show Preview Text
///
public static string SettingsShowPreviewText_Title => Resources.GetTranslatedString(@"SettingsShowPreviewText_Title");
+
///
/// Hide/show the thumbnail sender pictures.
///
public static string SettingsShowSenderPictures_Description => Resources.GetTranslatedString(@"SettingsShowSenderPictures_Description");
+
///
/// Show Sender Avatars
///
public static string SettingsShowSenderPictures_Title => Resources.GetTranslatedString(@"SettingsShowSenderPictures_Title");
+
///
/// Display Clock Format in 24 Hours
///
public static string SettingsPrefer24HourClock_Title => Resources.GetTranslatedString(@"SettingsPrefer24HourClock_Title");
+
///
/// Mail recieve times will be displayed in 24 hour format instead of 12 (AM/PM)
///
public static string SettingsPrefer24HourClock_Description => Resources.GetTranslatedString(@"SettingsPrefer24HourClock_Description");
+
///
/// Manage account signatures
///
public static string SettingsSignature_Description => Resources.GetTranslatedString(@"SettingsSignature_Description");
+
///
/// Signature
///
public static string SettingsSignature_Title => Resources.GetTranslatedString(@"SettingsSignature_Title");
+
///
/// Primary account item to load Inbox at startup.
///
public static string SettingsStartupItem_Description => Resources.GetTranslatedString(@"SettingsStartupItem_Description");
+
///
/// Startup Item
///
public static string SettingsStartupItem_Title => Resources.GetTranslatedString(@"SettingsStartupItem_Title");
+
///
/// Show some love ❤️
///
public static string SettingsStore_Description => Resources.GetTranslatedString(@"SettingsStore_Description");
+
///
/// Rate in Store
///
public static string SettingsStore_Title => Resources.GetTranslatedString(@"SettingsStore_Title");
+
///
/// Organize messages into conversation threads.
///
public static string SettingsThreads_Description => Resources.GetTranslatedString(@"SettingsThreads_Description");
+
///
/// Conversation Threading
///
public static string SettingsThreads_Title => Resources.GetTranslatedString(@"SettingsThreads_Title");
+
///
/// Remove the link between accounts. This will not delete your accounts.
///
public static string SettingsUnlinkAccounts_Description => Resources.GetTranslatedString(@"SettingsUnlinkAccounts_Description");
+
///
/// Unlink Accounts
///
public static string SettingsUnlinkAccounts_Title => Resources.GetTranslatedString(@"SettingsUnlinkAccounts_Title");
+
///
/// by date
///
public static string SortingOption_Date => Resources.GetTranslatedString(@"SortingOption_Date");
+
///
/// by name
///
public static string SortingOption_Name => Resources.GetTranslatedString(@"SortingOption_Name");
+
///
/// All feedbacks are appreciated and they will make much Wino better in the future. Would you like to rate Wino in Microsoft Store?
///
public static string StoreRatingDialog_MessageFirstLine => Resources.GetTranslatedString(@"StoreRatingDialog_MessageFirstLine");
+
///
/// Would you like to rate Wino Mail in Microsoft Store?
///
public static string StoreRatingDialog_MessageSecondLine => Resources.GetTranslatedString(@"StoreRatingDialog_MessageSecondLine");
+
///
/// Enjoying Wino?
///
public static string StoreRatingDialog_Title => Resources.GetTranslatedString(@"StoreRatingDialog_Title");
+
///
/// Archived messages will be moved to here.
///
public static string SystemFolderConfigDialog_ArchiveFolderDescription => Resources.GetTranslatedString(@"SystemFolderConfigDialog_ArchiveFolderDescription");
+
///
/// Archive Folder
///
public static string SystemFolderConfigDialog_ArchiveFolderHeader => Resources.GetTranslatedString(@"SystemFolderConfigDialog_ArchiveFolderHeader");
+
///
/// Deleted messages will be moved to here.
///
public static string SystemFolderConfigDialog_DeletedFolderDescription => Resources.GetTranslatedString(@"SystemFolderConfigDialog_DeletedFolderDescription");
+
///
/// Deleted Folder
///
public static string SystemFolderConfigDialog_DeletedFolderHeader => Resources.GetTranslatedString(@"SystemFolderConfigDialog_DeletedFolderHeader");
+
///
/// New mails/replies will be crafted in here.
///
public static string SystemFolderConfigDialog_DraftFolderDescription => Resources.GetTranslatedString(@"SystemFolderConfigDialog_DraftFolderDescription");
+
///
/// Draft Folder
///
public static string SystemFolderConfigDialog_DraftFolderHeader => Resources.GetTranslatedString(@"SystemFolderConfigDialog_DraftFolderHeader");
+
///
/// All spam/junk mails will be here.
///
public static string SystemFolderConfigDialog_JunkFolderDescription => Resources.GetTranslatedString(@"SystemFolderConfigDialog_JunkFolderDescription");
+
///
/// Junk/Spam Folder
///
public static string SystemFolderConfigDialog_JunkFolderHeader => Resources.GetTranslatedString(@"SystemFolderConfigDialog_JunkFolderHeader");
+
///
/// This IMAP server doesn't support SPECIAL-USE extension hence Wino couldn't setup the system folders properly.
///
public static string SystemFolderConfigDialog_MessageFirstLine => Resources.GetTranslatedString(@"SystemFolderConfigDialog_MessageFirstLine");
+
///
/// Please select the appropriate folders for specific functionalities.
///
public static string SystemFolderConfigDialog_MessageSecondLine => Resources.GetTranslatedString(@"SystemFolderConfigDialog_MessageSecondLine");
+
///
/// Folder that sent messages will be stored.
///
public static string SystemFolderConfigDialog_SentFolderDescription => Resources.GetTranslatedString(@"SystemFolderConfigDialog_SentFolderDescription");
+
///
/// Sent Folder
///
public static string SystemFolderConfigDialog_SentFolderHeader => Resources.GetTranslatedString(@"SystemFolderConfigDialog_SentFolderHeader");
+
///
/// Configure System Folders
///
public static string SystemFolderConfigDialog_Title => Resources.GetTranslatedString(@"SystemFolderConfigDialog_Title");
+
///
/// You can't assign Inbox folder to any other system folder.
///
public static string SystemFolderConfigDialogValidation_InboxSelected => Resources.GetTranslatedString(@"SystemFolderConfigDialogValidation_InboxSelected");
+
///
/// Some of the system folders are used more than once in the configuration.
///
public static string SystemFolderConfigDialogValidation_DuplicateSystemFolders => Resources.GetTranslatedString(@"SystemFolderConfigDialogValidation_DuplicateSystemFolders");
+
///
/// System Folders Setup
///
public static string SystemFolderConfigSetupSuccess_Title => Resources.GetTranslatedString(@"SystemFolderConfigSetupSuccess_Title");
+
///
/// System folders are successfully configured.
///
public static string SystemFolderConfigSetupSuccess_Message => Resources.GetTranslatedString(@"SystemFolderConfigSetupSuccess_Message");
+
///
/// Testing server connection...
///
public static string TestingImapConnectionMessage => Resources.GetTranslatedString(@"TestingImapConnectionMessage");
+
///
/// Today
///
public static string Today => Resources.GetTranslatedString(@"Today");
+
///
/// unknown address
///
public static string UnknownAddress => Resources.GetTranslatedString(@"UnknownAddress");
+
///
/// Unknown Date
///
public static string UnknownDateHeader => Resources.GetTranslatedString(@"UnknownDateHeader");
+
///
/// unknown Mail Group Address
///
public static string UnknownGroupAddress => Resources.GetTranslatedString(@"UnknownGroupAddress");
+
///
/// Unknown Sender
///
public static string UnknownSender => Resources.GetTranslatedString(@"UnknownSender");
+
///
/// Unsubscribe
///
public static string Unsubscribe => Resources.GetTranslatedString(@"Unsubscribe");
+
///
/// View Details
///
public static string ViewContactDetails => Resources.GetTranslatedString(@"ViewContactDetails");
+
///
/// Wino offers 3 accounts to start with for free. If you need more than 3 accounts, please upgrade
///
public static string WinoUpgradeDescription => Resources.GetTranslatedString(@"WinoUpgradeDescription");
+
///
/// Upgrade to Unlimited Accounts
///
public static string WinoUpgradeMessage => Resources.GetTranslatedString(@"WinoUpgradeMessage");
+
///
/// {0} out of {1} free accounts used.
///
public static string WinoUpgradeRemainingAccountsMessage => Resources.GetTranslatedString(@"WinoUpgradeRemainingAccountsMessage");
+
///
/// Yesterday
///
public static string Yesterday => Resources.GetTranslatedString(@"Yesterday");
+
///
/// Signature Editor
///
public static string SignatureEditorDialog_Title => Resources.GetTranslatedString(@"SignatureEditorDialog_Title");
+
///
/// Name your signature
///
public static string SignatureEditorDialog_SignatureName_Placeholder => Resources.GetTranslatedString(@"SignatureEditorDialog_SignatureName_Placeholder");
+
///
/// Signature name
///
public static string SignatureEditorDialog_SignatureName_TitleNew => Resources.GetTranslatedString(@"SignatureEditorDialog_SignatureName_TitleNew");
+
///
/// Current signature name: {0}
///
public static string SignatureEditorDialog_SignatureName_TitleEdit => Resources.GetTranslatedString(@"SignatureEditorDialog_SignatureName_TitleEdit");
+
///
/// Delete signature
///
public static string SignatureDeleteDialog_Title => Resources.GetTranslatedString(@"SignatureDeleteDialog_Title");
+
///
/// Are you sure you want to delete "{0}" signature?
///
public static string SignatureDeleteDialog_Message => Resources.GetTranslatedString(@"SignatureDeleteDialog_Message");
+
///
/// For New Messages
///
public static string SettingsSignature_ForNewMessages_Title => Resources.GetTranslatedString(@"SettingsSignature_ForNewMessages_Title");
+
///
/// For Replies/Forwards
///
public static string SettingsSignature_ForFollowingMessages_Title => Resources.GetTranslatedString(@"SettingsSignature_ForFollowingMessages_Title");
+
///
/// Signature defaults
///
public static string SettingsSignature_SignatureDefaults => Resources.GetTranslatedString(@"SettingsSignature_SignatureDefaults");
+
///
/// Signatures
///
public static string SettingsSignature_Signatures => Resources.GetTranslatedString(@"SettingsSignature_Signatures");
+
///
/// Add custom signature
///
public static string SettingsSignature_AddCustomSignature_Title => Resources.GetTranslatedString(@"SettingsSignature_AddCustomSignature_Title");
+
///
/// Add signature
///
public static string SettingsSignature_AddCustomSignature_Button => Resources.GetTranslatedString(@"SettingsSignature_AddCustomSignature_Button");
+
///
/// Edit signature
///
public static string SettingsSignature_EditSignature_Title => Resources.GetTranslatedString(@"SettingsSignature_EditSignature_Title");
+
///
/// Delete signature
///
public static string SettingsSignature_DeleteSignature_Title => Resources.GetTranslatedString(@"SettingsSignature_DeleteSignature_Title");
+
///
/// None
///
public static string SettingsSignature_NoneSignatureName => Resources.GetTranslatedString(@"SettingsSignature_NoneSignatureName");
- }
+
+}
}
diff --git a/Wino.Core/Integration/ImapClientPool.cs b/Wino.Core/Integration/ImapClientPool.cs
index 8746b218..44ca2a70 100644
--- a/Wino.Core/Integration/ImapClientPool.cs
+++ b/Wino.Core/Integration/ImapClientPool.cs
@@ -1,7 +1,10 @@
using System;
using System.Collections.Concurrent;
+using System.IO;
+using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using MailKit;
using MailKit.Net.Imap;
using MailKit.Net.Proxy;
using MailKit.Security;
@@ -20,7 +23,7 @@ namespace Wino.Core.Integration
/// TODO: Listens to the Inbox folder for new messages.
///
/// Connection/Authentication info to be used to configure ImapClient.
- public class ImapClientPool
+ public class ImapClientPool : IDisposable
{
// Hardcoded implementation details for ID extension if the server supports.
// Some providers like Chinese 126 require Id to be sent before authentication.
@@ -40,11 +43,13 @@ namespace Wino.Core.Integration
private readonly ConcurrentBag _clients = [];
private readonly SemaphoreSlim _semaphore = new(MaxPoolSize);
private readonly CustomServerInformation _customServerInformation;
+ private readonly Stream _protocolLogStream;
private readonly ILogger _logger = Log.ForContext();
- public ImapClientPool(CustomServerInformation customServerInformation)
+ public ImapClientPool(CustomServerInformation customServerInformation, Stream protocolLogStream = null)
{
_customServerInformation = customServerInformation;
+ _protocolLogStream = protocolLogStream;
}
private async Task EnsureConnectivityAsync(ImapClient client, bool isCreatedNew)
@@ -75,7 +80,7 @@ namespace Wino.Core.Integration
}
catch (Exception ex)
{
- throw new ImapClientPoolException(ex);
+ throw new ImapClientPoolException(ex, GetProtocolLogContent());
}
finally
{
@@ -84,6 +89,18 @@ namespace Wino.Core.Integration
}
}
+ public string GetProtocolLogContent()
+ {
+ if (_protocolLogStream == null) return default;
+
+ // Set the position to the beginning of the stream in case it is not already at the start
+ if (_protocolLogStream.CanSeek)
+ _protocolLogStream.Seek(0, SeekOrigin.Begin);
+
+ using var reader = new StreamReader(_protocolLogStream, Encoding.UTF8, true, 1024, leaveOpen: true);
+ return reader.ReadToEnd();
+ }
+
public async Task GetClientAsync()
{
await _semaphore.WaitAsync();
@@ -113,7 +130,17 @@ namespace Wino.Core.Integration
public ImapClient CreateNewClient()
{
- var client = new ImapClient();
+ ImapClient client = null;
+
+ // Make sure to create a ImapClient with a protocol logger if enabled.
+ if (_protocolLogStream != null)
+ {
+ client = new ImapClient(new ProtocolLogger(_protocolLogStream));
+ }
+ else
+ {
+ client = new ImapClient();
+ }
HttpProxyClient proxyClient = null;
@@ -175,5 +202,20 @@ namespace Wino.Core.Integration
await client.AuthenticateAsync(_customServerInformation.IncomingServerUsername, _customServerInformation.IncomingServerPassword);
}
+
+ public void Dispose()
+ {
+ foreach (var client in _clients)
+ {
+ client.Disconnect(true);
+ client.Dispose();
+ }
+
+ if (_protocolLogStream != null)
+ {
+ _protocolLogStream.Flush();
+ _protocolLogStream.Dispose();
+ }
+ }
}
}
diff --git a/Wino.Core/Messages/Mails/ImapSetupBackNavigationRequested.cs b/Wino.Core/Messages/Mails/ImapSetupBackNavigationRequested.cs
index 54ebddb6..e8762dc2 100644
--- a/Wino.Core/Messages/Mails/ImapSetupBackNavigationRequested.cs
+++ b/Wino.Core/Messages/Mails/ImapSetupBackNavigationRequested.cs
@@ -4,8 +4,9 @@ namespace Wino.Core.Messages.Mails
{
///
/// When IMAP setup dialog requestes back breadcrumb navigation.
+ /// Not providing PageType will go back to previous page by doing back navigation.
///
/// Type to go back.
/// Back parameters.
- public record ImapSetupBackNavigationRequested(Type PageType, object Parameter);
+ public record ImapSetupBackNavigationRequested(Type PageType = null, object Parameter = null);
}
diff --git a/Wino.Core/Services/ImapTestService.cs b/Wino.Core/Services/ImapTestService.cs
index c91ad119..a073ffef 100644
--- a/Wino.Core/Services/ImapTestService.cs
+++ b/Wino.Core/Services/ImapTestService.cs
@@ -1,9 +1,8 @@
using System.IO;
using System.Threading.Tasks;
-using MailKit;
-using MailKit.Net.Imap;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Interfaces;
+using Wino.Core.Integration;
namespace Wino.Core.Services
{
@@ -14,39 +13,40 @@ namespace Wino.Core.Services
private readonly IPreferencesService _preferencesService;
private readonly IAppInitializerService _appInitializerService;
+ private Stream _protocolLogStream;
+
public ImapTestService(IPreferencesService preferencesService, IAppInitializerService appInitializerService)
{
_preferencesService = preferencesService;
_appInitializerService = appInitializerService;
}
+ private void EnsureProtocolLogFileExists()
+ {
+ // Create new file for protocol logger.
+ var localAppFolderPath = _appInitializerService.GetApplicationDataFolder();
+
+ var logFile = Path.Combine(localAppFolderPath, ProtocolLogFileName);
+
+ if (File.Exists(logFile))
+ File.Delete(logFile);
+
+ _protocolLogStream = File.Create(logFile);
+ }
+
public async Task TestImapConnectionAsync(CustomServerInformation serverInformation)
{
- ImapClient client = null;
+ EnsureProtocolLogFileExists();
- if (_preferencesService.IsMailkitProtocolLoggerEnabled)
+ var clientPool = new ImapClientPool(serverInformation, _protocolLogStream);
+
+ using (clientPool)
{
- // Create new file for protocol logger.
+ // This call will make sure that everything is authenticated + connected successfully.
+ var client = await clientPool.GetClientAsync();
- var localAppFolderPath = _appInitializerService.GetApplicationDataFolder();
-
- var logFile = Path.Combine(localAppFolderPath, ProtocolLogFileName);
-
- if (File.Exists(logFile))
- File.Delete(logFile);
-
- var stream = File.Create(logFile);
-
- client = new ImapClient(new ProtocolLogger(stream));
- }
- else
- client = new ImapClient();
-
- using (client)
- {
- // todo: test connection
- // await client.InitializeAsync(serverInformation);
await client.DisconnectAsync(true);
+ client.Dispose();
}
}
}
diff --git a/Wino.Core/Synchronizers/ImapSynchronizer.cs b/Wino.Core/Synchronizers/ImapSynchronizer.cs
index 9c357970..bf74d266 100644
--- a/Wino.Core/Synchronizers/ImapSynchronizer.cs
+++ b/Wino.Core/Synchronizers/ImapSynchronizer.cs
@@ -59,14 +59,14 @@ namespace Wino.Core.Synchronizers
private ImapClient _inboxIdleClient;
public override uint BatchModificationSize => 1000;
- public override uint InitialMessageDownloadCountPerFolder => 500;
+ public override uint InitialMessageDownloadCountPerFolder => 250;
public ImapSynchronizer(MailAccount account, IImapChangeProcessor imapChangeProcessor) : base(account)
{
_clientPool = new ImapClientPool(Account.ServerInformation);
+ _imapChangeProcessor = imapChangeProcessor;
idleDoneToken = new CancellationTokenSource();
- _imapChangeProcessor = imapChangeProcessor;
}
// TODO
diff --git a/Wino.Mail.ViewModels/AccountManagementViewModel.cs b/Wino.Mail.ViewModels/AccountManagementViewModel.cs
index dac24f3f..c55d315c 100644
--- a/Wino.Mail.ViewModels/AccountManagementViewModel.cs
+++ b/Wino.Mail.ViewModels/AccountManagementViewModel.cs
@@ -174,6 +174,9 @@ namespace Wino.Mail.ViewModels
// Custom server implementation requires more async waiting.
if (creationDialog is ICustomServerAccountCreationDialog customServerDialog)
{
+ // Pass along the account properties and perform initial navigation on the imap frame.
+ customServerDialog.StartImapConnectionSetup(createdAccount);
+
customServerInformation = await customServerDialog.GetCustomServerInformationAsync()
?? throw new AccountSetupCanceledException();
diff --git a/Wino.Mail/Dialogs/NewImapSetupDialog.xaml.cs b/Wino.Mail/Dialogs/NewImapSetupDialog.xaml.cs
index e2e04581..d0746c83 100644
--- a/Wino.Mail/Dialogs/NewImapSetupDialog.xaml.cs
+++ b/Wino.Mail/Dialogs/NewImapSetupDialog.xaml.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System;
+using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media.Animation;
@@ -31,8 +32,6 @@ namespace Wino.Dialogs
public NewImapSetupDialog()
{
InitializeComponent();
-
- ImapFrame.Navigate(typeof(WelcomeImapSetupPage), null, new DrillInNavigationTransitionInfo());
}
// Not used for now.
@@ -50,9 +49,24 @@ namespace Wino.Dialogs
public Task GetCustomServerInformationAsync() => _getServerInfoTaskCompletionSource.Task;
- public void Receive(ImapSetupBackNavigationRequested message)
+ public async void Receive(ImapSetupBackNavigationRequested message)
{
- ImapFrame.Navigate(message.PageType, message.Parameter, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft });
+ // Frame go back
+ if (message.PageType == null)
+ {
+ if (ImapFrame.CanGoBack)
+ {
+ // Go back using Dispatcher to allow navigations in OnNavigatedTo.
+ await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
+ {
+ ImapFrame.GoBack();
+ });
+ }
+ }
+ else
+ {
+ ImapFrame.Navigate(message.PageType, message.Parameter, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft });
+ }
}
public void Receive(ImapSetupNavigationRequested message)
@@ -69,6 +83,9 @@ namespace Wino.Dialogs
ImapFrame.Navigate(typeof(PreparingImapFoldersPage), new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft });
}
+ public void StartImapConnectionSetup(MailAccount account) => ImapFrame.Navigate(typeof(WelcomeImapSetupPage), account, new DrillInNavigationTransitionInfo());
+
+
private void ImapSetupDialogClosed(ContentDialog sender, ContentDialogClosedEventArgs args) => WeakReferenceMessenger.Default.UnregisterAll(this);
private void ImapSetupDialogOpened(ContentDialog sender, ContentDialogOpenedEventArgs args) => WeakReferenceMessenger.Default.RegisterAll(this);
diff --git a/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml b/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml
index 5fb44e21..a1b164cc 100644
--- a/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml
+++ b/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml
@@ -44,28 +44,6 @@
IsAddTabButtonVisible="False"
CanReorderTabs="False"
TabWidthMode="Equal">
-
-
-
-
-
@@ -85,7 +63,7 @@
@@ -165,6 +143,7 @@
d:Header="Port"
Header="{x:Bind domain:Translator.IMAPSetupDialog_OutgoingMailServerPort}"
x:Name="OutgoingServerPort"
+ Text="587"
Grid.Column="1" />
@@ -230,11 +209,6 @@
-
-
diff --git a/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml.cs b/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml.cs
index fdd17704..3b4ec774 100644
--- a/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml.cs
+++ b/Wino.Mail/Views/ImapSetup/AdvancedImapSetupPage.xaml.cs
@@ -9,13 +9,14 @@ using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.AutoDiscovery;
using Wino.Core.Messages.Mails;
-using Wino.Extensions;
namespace Wino.Views.ImapSetup
{
public sealed partial class AdvancedImapSetupPage : Page
{
+ private string _protocolLog;
+
public List AvailableAuthenticationMethods { get; } = new List()
{
new ImapAuthenticationMethodModel(Core.Domain.Enums.ImapAuthenticationMethod.Auto, Translator.ImapAuthenticationMethod_Auto),
@@ -76,6 +77,8 @@ namespace Wino.Views.ImapSetup
{
base.OnNavigatedTo(e);
+ // ProtocolLogGrid.Visibility = Visibility.Collapsed;
+
// Connection is succesfull but error occurred.
// Imap and Smptp settings exists here at this point.
@@ -93,12 +96,8 @@ namespace Wino.Views.ImapSetup
IncomingServerBox.Text = serverInfo.IncomingServer;
IncomingServerPortBox.Text = serverInfo.IncomingServerPort;
-
OutgoingPasswordBox.Password = serverInfo.OutgoingServerPassword;
-
- OutgoingServerBox.Text = serverInfo.OutgoingServer;
OutgoingServerPort.Text = serverInfo.OutgoingServerPort;
-
OutgoingUsernameBox.Text = serverInfo.OutgoingServerUsername;
UseSameCredentialsForSending = OutgoingUsernameBox.Text == UsernameBox.Text;
@@ -112,12 +111,6 @@ namespace Wino.Views.ImapSetup
DisplayNameBox.Text = autoDiscoveryMinimalSettings.DisplayName;
PasswordBox.Password = autoDiscoveryMinimalSettings.Password;
}
- else if (e.Parameter is AutoDiscoveryConnectionTestFailedPackage failedPackage)
- {
- ErrorMessage.Text = failedPackage.Error.Message;
-
- MainScrollviewer.ScrollToElement(ErrorMessage);
- }
}
private void CancelClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new ImapSetupDismissRequested(null));
@@ -136,8 +129,6 @@ namespace Wino.Views.ImapSetup
private void SignInClicked(object sender, RoutedEventArgs e)
{
- ErrorMessage.Text = string.Empty;
-
var info = new CustomServerInformation()
{
IncomingServer = GetServerWithoutPort(IncomingServerBox.Text),
diff --git a/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml b/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml
deleted file mode 100644
index 0d2cb316..00000000
--- a/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml.cs b/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml.cs
deleted file mode 100644
index f71b1299..00000000
--- a/Wino.Mail/Views/ImapSetup/AutoDiscoveryPage.xaml.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System.Threading.Tasks;
-using CommunityToolkit.Mvvm.Messaging;
-using Microsoft.Extensions.DependencyInjection;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Navigation;
-using Wino.Core.Domain.Interfaces;
-using Wino.Core.Domain.Models.AutoDiscovery;
-using Wino.Core.Messages.Mails;
-
-namespace Wino.Views.ImapSetup
-{
- public sealed partial class AutoDiscoveryPage : Page
- {
- private readonly IAutoDiscoveryService _autoDiscoveryService;
- public AutoDiscoveryPage()
- {
- InitializeComponent();
- _autoDiscoveryService = App.Current.Services.GetService();
- }
-
- protected override async void OnNavigatedTo(NavigationEventArgs e)
- {
- base.OnNavigatedTo(e);
-
- AutoDiscoverySettings discoverySettings = null;
-
- if (e.Parameter is AutoDiscoveryMinimalSettings userMinimalSettings)
- {
- discoverySettings = await _autoDiscoveryService.GetAutoDiscoverySettings(userMinimalSettings);
-
- await Task.Delay(1000);
-
- if (discoverySettings == null)
- {
- // Couldn't find settings.
-
- WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested(typeof(WelcomeImapSetupPage), $"Couldn't find mailbox settings for {userMinimalSettings.Email}. Please configure it manually."));
- }
- else
- {
- // Settings are found. Test the connection with the given password.
-
- discoverySettings.UserMinimalSettings = userMinimalSettings;
-
- WeakReferenceMessenger.Default.Send(new ImapSetupNavigationRequested(typeof(TestingImapConnectionPage), discoverySettings));
- }
- }
- }
- }
-}
diff --git a/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml b/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml
new file mode 100644
index 00000000..84815a24
--- /dev/null
+++ b/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml.cs b/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml.cs
new file mode 100644
index 00000000..b0331ebf
--- /dev/null
+++ b/Wino.Mail/Views/ImapSetup/ImapConnectionFailedPage.xaml.cs
@@ -0,0 +1,49 @@
+using CommunityToolkit.Mvvm.Messaging;
+using Microsoft.Extensions.DependencyInjection;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+using Wino.Core.Domain;
+using Wino.Core.Domain.Exceptions;
+using Wino.Core.Domain.Interfaces;
+using Wino.Core.Messages.Mails;
+
+namespace Wino.Views.ImapSetup
+{
+ public sealed partial class ImapConnectionFailedPage : Page
+ {
+ private string _protocolLog;
+
+ private readonly IClipboardService _clipboardService = App.Current.Services.GetService();
+ private readonly IDialogService _dialogService = App.Current.Services.GetService();
+
+ public ImapConnectionFailedPage()
+ {
+ InitializeComponent();
+ }
+
+ private async void CopyProtocolLogButtonClicked(object sender, RoutedEventArgs e)
+ {
+ await _clipboardService.CopyClipboardAsync(_protocolLog);
+
+ _dialogService.InfoBarMessage(Translator.ClipboardTextCopied_Title, string.Format(Translator.ClipboardTextCopied_Message, "Log"), Core.Domain.Enums.InfoBarMessageType.Information);
+ }
+
+ protected override void OnNavigatedTo(NavigationEventArgs e)
+ {
+ base.OnNavigatedTo(e);
+
+ if (e.Parameter is ImapConnectionFailedPackage failedPackage)
+ {
+ ConnectionFailedMessage.Text = failedPackage.GetErrorMessage();
+
+ ProtocolLogGrid.Visibility = !string.IsNullOrEmpty(failedPackage.ProtocolLog) ? Visibility.Visible : Visibility.Collapsed;
+ _protocolLog = failedPackage.ProtocolLog;
+ }
+ }
+
+ private void TryAgainClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested());
+
+ private void CloseClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new ImapSetupDismissRequested());
+ }
+}
diff --git a/Wino.Mail/Views/ImapSetup/TestingImapConnectionPage.xaml.cs b/Wino.Mail/Views/ImapSetup/TestingImapConnectionPage.xaml.cs
index a9109fa0..ff8028b8 100644
--- a/Wino.Mail/Views/ImapSetup/TestingImapConnectionPage.xaml.cs
+++ b/Wino.Mail/Views/ImapSetup/TestingImapConnectionPage.xaml.cs
@@ -1,12 +1,11 @@
using System;
-using System.Collections.Generic;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
-using Microsoft.AppCenter.Analytics;
using Microsoft.Extensions.DependencyInjection;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using Wino.Core.Domain.Entities;
+using Wino.Core.Domain.Exceptions;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.AutoDiscovery;
using Wino.Core.Messages.Mails;
@@ -16,13 +15,11 @@ namespace Wino.Views.ImapSetup
{
public sealed partial class TestingImapConnectionPage : Page
{
- private IImapTestService _imapTestService;
+ private IImapTestService _imapTestService = App.Current.Services.GetService();
public TestingImapConnectionPage()
{
InitializeComponent();
-
- _imapTestService = App.Current.Services.GetService();
}
private async Task TryTestConnectionAsync(CustomServerInformation serverInformation)
@@ -40,39 +37,43 @@ namespace Wino.Views.ImapSetup
{
base.OnNavigatedTo(e);
- // We either go back to welcome setup page or advanced config page.
- // Based on if we come from auto discovery or not.
-
- if (e.Parameter is AutoDiscoverySettings autoDiscoverySettings)
+ // We can only go back to this page from failed connection page.
+ // We must go back once again in that case to actual setup dialog.
+ if (e.NavigationMode == NavigationMode.Back)
{
- var serverInformation = autoDiscoverySettings.ToServerInformation();
-
- try
- {
- await TryTestConnectionAsync(serverInformation);
- }
- catch (Exception ex)
- {
- WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested(typeof(WelcomeImapSetupPage),
- new AutoDiscoveryConnectionTestFailedPackage(autoDiscoverySettings, ex)));
- }
+ WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested());
}
- else if (e.Parameter is CustomServerInformation customServerInformation)
+ else
{
+ // Test connection
+
+ CustomServerInformation serverInformationToTest = null;
+ AutoDiscoverySettings autoDiscoverySettings = null;
+
+ // Discovery settings are passed.
+ // Create server information out of the discovery settings.
+ if (e.Parameter is AutoDiscoverySettings parameterAutoDiscoverySettings)
+ {
+ autoDiscoverySettings = parameterAutoDiscoverySettings;
+ serverInformationToTest = autoDiscoverySettings.ToServerInformation();
+ }
+ else if (e.Parameter is CustomServerInformation customServerInformation)
+ {
+ // Only server information is passed.
+ serverInformationToTest = customServerInformation;
+ }
+
try
{
- await TryTestConnectionAsync(customServerInformation);
+ await TryTestConnectionAsync(serverInformationToTest);
}
catch (Exception ex)
{
- Analytics.TrackEvent("IMAP Test Failed", new Dictionary()
- {
- { "Server", customServerInformation.IncomingServer },
- { "Port", customServerInformation.IncomingServerPort },
- });
+ string protocolLog = ex is ImapClientPoolException clientPoolException ? clientPoolException.ProtocolLog : string.Empty;
- WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested(typeof(AdvancedImapSetupPage),
- new AutoDiscoveryConnectionTestFailedPackage(ex)));
+ var failurePackage = new ImapConnectionFailedPackage(ex, protocolLog, autoDiscoverySettings);
+
+ WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested(typeof(ImapConnectionFailedPage), failurePackage));
}
}
}
diff --git a/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml b/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml
index 6beab59a..55629978 100644
--- a/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml
+++ b/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml
@@ -4,98 +4,115 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Wino.Views.ImapSetup"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:domain="using:Wino.Core.Domain"
mc:Ignorable="d">
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+ Text="{x:Bind domain:Translator.BasicIMAPSetupDialog_Title}"
+ Margin="1,0,0,0"
+ Style="{StaticResource TitleTextBlockStyle}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml.cs b/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml.cs
index a7f5ec13..329c9dc8 100644
--- a/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml.cs
+++ b/Wino.Mail/Views/ImapSetup/WelcomeImapSetupPage.xaml.cs
@@ -1,32 +1,51 @@
using System;
+using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
+using Microsoft.Extensions.DependencyInjection;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
+using Wino.Core.Domain;
+using Wino.Core.Domain.Entities;
+using Wino.Core.Domain.Exceptions;
+using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.AutoDiscovery;
using Wino.Core.Messages.Mails;
-using Wino.Extensions;
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238
namespace Wino.Views.ImapSetup
{
- ///
- /// An empty page that can be used on its own or navigated to within a Frame.
- ///
public sealed partial class WelcomeImapSetupPage : Page
{
- private AutoDiscoveryConnectionTestFailedPackage failedPackage;
+ private ImapConnectionFailedPackage failedPackage;
+ private readonly IAutoDiscoveryService _autoDiscoveryService = App.Current.Services.GetService();
public WelcomeImapSetupPage()
{
InitializeComponent();
- NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
}
- private void SignInClicked(object sender, RoutedEventArgs e)
+ protected override void OnNavigatedTo(NavigationEventArgs e)
{
- failedPackage = null;
+ base.OnNavigatedTo(e);
+
+ AutoDiscoveryPanel.Visibility = Visibility.Collapsed;
+ MainSetupPanel.Visibility = Visibility.Visible;
+
+ if (e.Parameter is MailAccount accountProperties)
+ {
+ DisplayNameBox.Text = accountProperties.Name;
+ }
+ }
+
+ private async void SignInClicked(object sender, RoutedEventArgs e)
+ {
+ MainSetupPanel.Visibility = Visibility.Collapsed;
+ AutoDiscoveryPanel.Visibility = Visibility.Visible;
+
+ // Let users see the discovery message for a while...
+
+ await Task.Delay(1000);
var minimalSettings = new AutoDiscoveryMinimalSettings()
{
@@ -35,32 +54,27 @@ namespace Wino.Views.ImapSetup
Email = AddressBox.Text,
};
- WeakReferenceMessenger.Default.Send(new ImapSetupNavigationRequested(typeof(AutoDiscoveryPage), minimalSettings));
- }
+ var discoverySettings = await _autoDiscoveryService.GetAutoDiscoverySettings(minimalSettings);
- protected override void OnNavigatedTo(NavigationEventArgs e)
- {
- base.OnNavigatedTo(e);
-
- if (e.Parameter is string errorMessage)
+ if (discoverySettings == null)
{
- ErrorMessageText.Text = errorMessage;
+ // Couldn't find settings.
- MainScrollviewer.ScrollToElement(ErrorMessageText);
+ var failurePackage = new ImapConnectionFailedPackage(new Exception(Translator.Exception_ImapAutoDiscoveryFailed), string.Empty, discoverySettings);
+
+ WeakReferenceMessenger.Default.Send(new ImapSetupBackNavigationRequested(typeof(ImapConnectionFailedPage), failurePackage));
}
- else if (e.Parameter is AutoDiscoveryConnectionTestFailedPackage autoDiscoveryConnectionTestFailedPackage)
+ else
{
- failedPackage = autoDiscoveryConnectionTestFailedPackage;
- ErrorMessageText.Text = $"Discovery was successful but connection to the server failed.{Environment.NewLine}{Environment.NewLine}{autoDiscoveryConnectionTestFailedPackage.Error.Message}";
+ // Settings are found. Test the connection with the given password.
- MainScrollviewer.ScrollToElement(ErrorMessageText);
+ discoverySettings.UserMinimalSettings = minimalSettings;
+
+ WeakReferenceMessenger.Default.Send(new ImapSetupNavigationRequested(typeof(TestingImapConnectionPage), discoverySettings));
}
}
- private void CancelClicked(object sender, RoutedEventArgs e)
- {
- WeakReferenceMessenger.Default.Send(new ImapSetupDismissRequested());
- }
+ private void CancelClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new ImapSetupDismissRequested());
private void AdvancedConfigurationClicked(object sender, RoutedEventArgs e)
{
diff --git a/Wino.Mail/Wino.Mail.csproj b/Wino.Mail/Wino.Mail.csproj
index 01809d2d..8796dfd4 100644
--- a/Wino.Mail/Wino.Mail.csproj
+++ b/Wino.Mail/Wino.Mail.csproj
@@ -380,8 +380,8 @@
AdvancedImapSetupPage.xaml
-
- AutoDiscoveryPage.xaml
+
+ ImapConnectionFailedPage.xaml
PreparingImapFoldersPage.xaml
@@ -595,7 +595,7 @@
Designer
MSBuild:Compile
-
+
Designer
MSBuild:Compile