48 #pragma mark - Y3GmailDataListener 50 - (void)rcvdNutriJournInfoHeadersWithTicket:(GTLRServiceTicket *)ticket
51 finishedWithObject:(GTLRGmail_ListMessagesResponse *)messagesResponse
52 error:(NSError *)error {
55 NSLog(
@"GmailViewController.rcvdInfoHeaders: header count: %lu", messagesResponse.messages.count);
57 if (messagesResponse.messages.count > 0) {
59 for (GTLRGmail_Message *mesg in messagesResponse.messages) {
62 if ([
self isDoNotDowloadListed:mesg]) {
63 NSLog(
@"GmailViewController.rcvdInfoHeaders: download blocked");
66 [mesgTickets addObject:ticket];
71 NSLog(
@"GmailViewController.rcvdInfoHeaders: no messages found");
74 NSLog(
@"GmailViewController.rcvdInfoHeaders: error: %@", error.localizedDescription);
80 [doNotDownloadMessages removeAllObjects];
82 - (Boolean) isDoNotDowloadListed:(GTLRGmail_Message *) mesg
89 [doNotDownloadMessages addObjectsFromArray:dbEmail];
93 if ([emsg.remoteUniqueIID isEqualToString:mesg.identifier]) {
104 - (void)rcvdMessageWithTicket:(GTLRServiceTicket *)ticket
105 finishedWithObject:(GTLRGmail_Message *)message
106 error:(NSError *)error {
113 NSLog(
@"Y3GmailViewController.rcvdMessageWithTicket: %@", message.identifier);assert(eMsg);
114 [emailMessages addObject:eMsg];
115 [mesgTickets removeObject:ticket];
116 NSArray<GTLRGmail_MessagePartHeader *> *hdrs = message.payload.headers;
117 for (GTLRGmail_MessagePartHeader *headInfo in hdrs) {
118 if ([
@"Subject" isEqualToString:headInfo.name]) {
120 [eMsg setSubject:headInfo.value];
123 NSLog(
@"GmailDisplayController.rcvdMessageWithTicket - headers");
124 for (GTLRGmail_MessagePartHeader *headInfo in hdrs) {
125 NSLog(
@" %@ / %@", headInfo.name, headInfo.value);
126 if ([
@"Message-Id" isEqualToString:headInfo.name]) {
127 [eMsg setUid:headInfo.value];
129 if ([
@"From" isEqualToString:headInfo.name]) {
130 [eMsg setFrom:headInfo.value];
132 if ([
@"Date" isEqualToString:headInfo.name]) {
135 NSDate *date = [msgNearDateFormatter dateFromString:headInfo.value];
140 if ([
@"Subject" isEqualToString:headInfo.name]) {
141 [eMsg setSubject:headInfo.value];
146 NSArray <GTLRGmail_MessagePart *> *msgPts = message.payload.parts;
147 for (GTLRGmail_MessagePart *msgPt in msgPts) {
148 NSLog(
@"GmailViewController.rcvdInfoMessage: mime-type: %@", msgPt.mimeType);
149 if ([
@"image/jpeg" isEqualToString:msgPt.mimeType]) {
152 NSLog(
@"GmailViewController.rcvdInfoMessage: image filename: %@", msgPt.filename);
154 if (nil == msgPt.filename) {
157 [eMsg setPhoto:partData];
159 NSString *attId = msgPt.body.attachmentId;
161 NSLog(
@"GmailViewController.rcvdInfoMessage: attachmentTicket %@", attachmentTicket.description);
163 [eMsgAttachments setValue:eMsg forKey:message.identifier];
165 }
else if ([
@"text/html" isEqualToString:msgPt.mimeType]) {
168 NSString *decodeString = [[NSString alloc] initWithData:intermediateData encoding:NSUTF8StringEncoding];
170 NSLog(
@" html: %@", decodeString);
171 [eMsg setBodyhtml:decodeString];
172 }
else if ([
@"text/plain" isEqualToString:msgPt.mimeType]) {
175 NSString *decodeString = [[NSString alloc] initWithData:intermediateData encoding:NSUTF8StringEncoding];
178 [eMsg setBodytext:decodeString];
186 [delegate reframeTable];
190 - (void) rcvdAttachmentWithTicket:(GTLRServiceTicket *)callbackTicket finishedWithObject:(GTLRObject *)object error:(NSError *)callbackError
193 if (nil == callbackError) {
195 NSString *messageID = callbackTicket.ticketProperties[@"Message ID"];
197 EmailMessage *eMsg = [eMsgAttachments objectForKey:messageID];
198 [eMsgAttachments removeObjectForKey:messageID];
200 GTLRGmail_MessagePartBody *partBody = (GTLRGmail_MessagePartBody *)
object;
203 NSString *encodedStr = partBody.data;
204 NSString *identitiyNumber = partBody.attachmentId;
206 if (nil != encodedStr) {
208 [eMsg setPhoto:intermediateData];
210 }
else if (nil != identitiyNumber) {
211 NSLog(
@"GmailViewController.rcvdInfoMessage: attachmentId:%@", identitiyNumber);
213 NSLog(
@"GmailViewController.rcvdInfoMessage: nil partBody data and attachID");
216 NSLog(
@"GmailViewController.rcvdAttachmentWithTicket: error: %@", callbackError.localizedDescription);
void initializeBlockedList()
NSMutableArray< EmailMessage * > * emailMessages
NSData * googleBase64Data:(NSString *googEncodeString)
Z5GmailDataController * emailController
NSMutableDictionary * eMsgAttachments
instancetype sharedInstance()
GTLRServiceTicket * fetchJournalMessage:withListener:(NSString *identifier, [withListener] id< Z5GmailDataListener > listener)
NSMutableArray< EmailMessage * > * doNotDownloadMessages
id< U7ParamEditControlDelegate > delegate
void addDataListener:(id< Z5GmailDataListener > ear)
NSMutableArray< GTLRServiceTicket * > * mesgTickets
Singleton interface to both core and remote data sources.
EmailMessage * findOrCreateEmailMessageWithFileIdentification:(NSString *googlefileid)
Z5RemoteDataController * remoteDataController
NSArray * retrieveAllEmailMessages()
NSDateFormatter * msgNearDateFormatter
Fetch all marked emails into the local database, and display a list.
GTLRServiceTicket * fetchMessageAttachment:onMessage:withListener:(NSString *identifier, [onMessage] NSString *msgId, [withListener] id< Z5GmailDataListener > listener)