aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap/MCOIMAPMessage.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc/imap/MCOIMAPMessage.mm')
-rw-r--r--src/objc/imap/MCOIMAPMessage.mm53
1 files changed, 45 insertions, 8 deletions
diff --git a/src/objc/imap/MCOIMAPMessage.mm b/src/objc/imap/MCOIMAPMessage.mm
index 5ba4ef1f..1a289f97 100644
--- a/src/objc/imap/MCOIMAPMessage.mm
+++ b/src/objc/imap/MCOIMAPMessage.mm
@@ -15,6 +15,7 @@
#import "MCOAbstractMessageRendererCallback.h"
#import "MCOHTMLRendererDelegate.h"
#import "MCOHTMLRendererIMAPDelegate.h"
+#import "MCOIMAPMessageRenderingOperation.h"
@implementation MCOIMAPMessage {
mailcore::IMAPMessage * _message;
@@ -65,24 +66,60 @@ MCO_OBJC_SYNTHESIZE_SCALAR(uint64_t, uint64_t, setGmailMessageID, gmailMessageID
return result;
}
-- (NSString *) htmlRenderingWithFolder:(NSString *)folder
+- (NSString *) htmlRenderingWithSession:(MCOIMAPSession *)session
+ folder:(NSString *)folder
+ done:(void (^)(NSString * htmlString,
+ NSError * error))completionBlock
{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->htmlRendering([folder mco_mcString]));
+ MCOIMAPMessageRenderingOperation * op = [session renderingOperationForMessage:self
+ inFolder:folder
+ type:MCOIMAPMessageRenderingTypeHTML];
+
+ [op start:^(NSString * htmlString, NSError * error) ] {
+ completionBlock(htmlString, error);
+ }];
}
-- (NSString *) htmlBodyRenderingWithFolder:(NSString *)folder
+- (NSString *) htmlBodyRenderingWithSession:(MCOIMAPSession *)session
+ folder:(NSString *)folder
+ done:(void (^)(NSString * htmlString,
+ NSError * error))completionBlock
{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->htmlBodyRendering([folder mco_mcString]));
+ MCOIMAPMessageRenderingOperation * op = [session renderingOperationForMessage:self
+ inFolder:folder
+ type:MCOIMAPMessageRenderingTypeHTMLBody];
+
+ [op start:^(NSString * htmlString, NSError * error) ] {
+ completionBlock(htmlString, error);
+ }];
}
-- (NSString *) plainTextRenderingWithFolder:(NSString *)folder
+- (NSString *) plainTextRenderingWithSession:(MCOIMAPSession *)session
+ folder:(NSString *)folder
+ done:(void (^)(NSString * htmlString,
+ NSError * error))completionBlock
{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->plainTextRendering([folder mco_mcString]));
+ MCOIMAPMessageRenderingOperation * op = [session renderingOperationForMessage:self
+ inFolder:folder
+ type:MCOIMAPMessageRenderingTypePlainText];
+
+ [op start:^(NSString * htmlString, NSError * error) ] {
+ completionBlock(htmlString, error);
+ }];
}
-- (NSString *) plainTextBodyRenderingWithFolder:(NSString *)folder
+- (NSString *) plainTextBodyRenderingWithSession:(MCOIMAPSession *)session
+ folder:(NSString *)folder
+ done:(void (^)(NSString * htmlString,
+ NSError * error))completionBlock
{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->plainTextBodyRendering([folder mco_mcString]));
+ MCOIMAPMessageRenderingOperation * op = [session renderingOperationForMessage:self
+ inFolder:folder
+ type:MCOIMAPMessageRenderingTypePlainTextBody];
+
+ [op start:^(NSString * htmlString, NSError * error) ] {
+ completionBlock(htmlString, error);
+ }];
}
@end