diff --git a/UI/MailerUI/UIxMailAccountActions.m b/UI/MailerUI/UIxMailAccountActions.m index a2c35fad0..191233e6d 100644 --- a/UI/MailerUI/UIxMailAccountActions.m +++ b/UI/MailerUI/UIxMailAccountActions.m @@ -32,6 +32,8 @@ #import #import +#import + #import #import #import @@ -124,17 +126,26 @@ - (NSDictionary *) _statusFolders { - SOGoMailFolder *inbox; + EOQualifier *searchQualifier; + NSArray *searchResult; + NSDictionary *imapResult; NGImap4Client *client; - SOGoMailAccount *co; NSNumber *unseen; + SOGoMailFolder *inbox; + SOGoMailAccount *co; co = [self clientObject]; inbox = [co inboxFolderInContext: context]; client = [[inbox imap4Connection] client]; - unseen = [[client status: [inbox relativeImap4Name] flags: [NSArray arrayWithObject: @"UNSEEN"]] - objectForKey: @"unseen"]; + if ([client select: [inbox relativeImap4Name]]) + { + searchQualifier = [EOQualifier qualifierWithQualifierFormat: @"flags = %@ AND not flags = %@", @"unseen", @"deleted"]; + imapResult = [client searchWithQualifier: searchQualifier]; + searchResult = [[imapResult objectForKey: @"RawResponse"] objectForKey: @"search"]; + unseen = [NSNumber numberWithInt: [searchResult count]]; + } + if (!unseen) unseen = [NSNumber numberWithInt: 0]; @@ -193,6 +204,7 @@ nil]; } data = [NSDictionary dictionaryWithObjectsAndKeys: folders, @"mailboxes", + [self _statusFolders], @"status", inboxQuota, @"quotas", nil]; response = [self responseWithStatus: 200];