aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/utils/NSError+MCO.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc/utils/NSError+MCO.mm')
-rw-r--r--src/objc/utils/NSError+MCO.mm55
1 files changed, 10 insertions, 45 deletions
diff --git a/src/objc/utils/NSError+MCO.mm b/src/objc/utils/NSError+MCO.mm
index b6b73f6d..56d571e4 100644
--- a/src/objc/utils/NSError+MCO.mm
+++ b/src/objc/utils/NSError+MCO.mm
@@ -5,51 +5,13 @@
#import "NSError+MCO.h"
+#include "MCBaseTypes.h"
+#include "MCErrorMessage.h"
+
#import "MCOConstants.h"
+#import "NSObject+MCO.h"
-static NSString * MCOLocalizedDescriptionTable[] = {
- @"The operation succeeded.", /** MCOErrorNone */
- @"A stable connection to the server could not be established.", /** MCOErrorConnection */
- @"The server does not support TLS/SSL connections.", /** MCOErrorTLSNotAvailable */
- @"Unable to parse response from server.", /** MCOErrorParse */
- @"The certificate for this server is invalid.", /** MCOErrorCertificate */
- @"Unable to authenticate with the current session's credentials.", /** MCOErrorAuthentication */
- @"IMAP is not enabled for this Gmail account.", /** MCOErrorGmailIMAPNotEnabled */
- @"Bandwidth limits were exceeded while requesting data from this Gmail account.", /** MCOErrorGmailExceededBandwidthLimit */
- @"Too many simultaneous connections were made to this Gmail account.", /** MCOErrorGmailTooManySimultaneousConnections */
- @"MobileMe is no longer an active mail service.", /** MCOErrorMobileMeMoved */
- @"Yahoo!'s servers are currently unavailable.", /** MCOErrorYahooUnavailable */
- @"The requested folder does not exist. Folder selection failed", /** MCOErrorNonExistantFolder */
- @"An error occured while renaming the requested folder.", /** MCOErrorRename */
- @"An error occured while deleting the requested folder.", /** MCOErrorDelete */
- @"An error occured while creating the requested folder.", /** MCOErrorCreate */
- @"An error occured while (un)subscribing to the requested folder.", /** MCOErrorSubscribe */
- @"An error occured while appending a message to the requested folder.", /** MCOErrorAppend */
- @"An error occured while copying a message to the requested folder.", /** MCOErrorCopy */
- @"An error occured while expunging a message in the requested folder.", /** MCOErrorExpunge */
- @"An error occured while fetching messages in the requested folder.", /** MCOErrorFetch */
- @"An error occured during an IDLE operation.", /** MCOErrorIdle */
- @"An error occured while requesting the server's identity.", /** MCOErrorIdentity */
- @"An error occured while requesting the server's namespace.", /** MCOErrorNamespace */
- @"An error occured while storing flags.", /** MCOErrorStore */
- @"An error occured while requesting the server's capabilities.", /** MCOErrorCapability */
- @"The server does not support STARTTLS connections.", /** MCOErrorStartTLSNotAvailable */
- @"Attempted to send a message with an illegal attachment.", /** MCOErrorSendMessageIllegalAttachment */
- @"The SMTP storage limit was hit while trying to send a large message.", /** MCOErrorStorageLimit */
- @"Sending messages is not allowed on this server.", /** MCOErrorSendMessageNotAllowed */
- @"The current HotMail account cannot connect to WebMail.", /** MCOErrorNeedsConnectToWebmail */
- @"An error occured while sending the message.", /** MCOErrorSendMessage */
- @"Authentication is required for this SMTP server.", /** MCOErrorAuthenticationRequired */
- @"An error occured while fetching a message list on the POP server.", /** MCOErrorFetchMessageList */
- @"An error occured while deleting a message on the POP server.", /** MCOErrorDeleteMessage */
- @"Account check failed because the account is invalid.", /** MCOErrorInvalidAccount */
- @"File access error", /** MCOErrorFile */
- @"Compression is not available", /** MCOErrorCompression */
- @"A sender is required to send message", /** MCOErrorNoSender */
- @"A recipient is required to send message", /** MCOErrorNoRecipient */
- @"An error occured while performing a No-Op operation.", /** MCOErrorNoop */
- @"An application specific password is required", /** MCOErrorGmailApplicationSpecificPasswordRequired */
-};
+using namespace mailcore;
@implementation NSError (MCO)
+ (NSError *)mco_errorWithErrorCode:(mailcore::ErrorCode)code {
@@ -59,8 +21,11 @@ static NSString * MCOLocalizedDescriptionTable[] = {
NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] init];
if ((NSInteger) code < MCOErrorCodeCount) {
- NSString * localizedString = NSLocalizedStringFromTable(MCOLocalizedDescriptionTable[code], @"description of errors of mailcore", @"MailCore");
- [userInfo setObject:localizedString forKey:NSLocalizedDescriptionKey];
+ String * errorMessage = errorMessageWithErrorCode(code);
+ if (errorMessage != NULL) {
+ NSString * localizedString = NSLocalizedStringFromTable(MCO_TO_OBJC(errorMessage), @"description of errors of mailcore", @"MailCore");
+ [userInfo setObject:localizedString forKey:NSLocalizedDescriptionKey];
+ }
}
NSError *error = [NSError errorWithDomain:MCOErrorDomain