oc-mail: Give support to store extra properties in versions message
This is handy when you want to store properties once a mail has hit the server and thus cannot be changed.pull/65/head
parent
0db16aedb1
commit
a663fdd260
|
@ -55,6 +55,11 @@
|
||||||
- (NSData *) changeKeyForMessageWithKey: (NSString *) messageKey;
|
- (NSData *) changeKeyForMessageWithKey: (NSString *) messageKey;
|
||||||
- (NSData *) predecessorChangeListForMessageWithKey: (NSString *) messageKey;
|
- (NSData *) predecessorChangeListForMessageWithKey: (NSString *) messageKey;
|
||||||
|
|
||||||
|
/* Extra properties from mail messages that already hit the server */
|
||||||
|
- (void) setExtraProperties: (NSDictionary *) props
|
||||||
|
forMessage: (NSString *) messageKey;
|
||||||
|
- (NSDictionary *) extraPropertiesForMessage: (NSString *) messageKey;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
/* MAPIStoreOutboxFolder is a special subclass of MAPIStoreMailFolder where
|
/* MAPIStoreOutboxFolder is a special subclass of MAPIStoreMailFolder where
|
||||||
|
|
|
@ -964,6 +964,37 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Management for extra properties once they already hit the IMAP server */
|
||||||
|
- (void) setExtraProperties: (NSDictionary *) props
|
||||||
|
forMessage: (NSString *) messageKey
|
||||||
|
{
|
||||||
|
NSMutableDictionary *extraProps, *currentProperties;
|
||||||
|
NSString *messageUid;
|
||||||
|
|
||||||
|
messageUid = [self messageUIDFromMessageKey: messageKey];
|
||||||
|
currentProperties = [versionsMessage properties];
|
||||||
|
extraProps = [currentProperties objectForKey: @"ExtraMessagesProperties"];
|
||||||
|
if (!extraProps)
|
||||||
|
{
|
||||||
|
extraProps = [NSMutableDictionary new];
|
||||||
|
[currentProperties setObject: extraProps forKey: @"ExtraMessagesProperties"];
|
||||||
|
[extraProps release];
|
||||||
|
}
|
||||||
|
|
||||||
|
[extraProps setObject: props
|
||||||
|
forKey: messageUid];
|
||||||
|
[versionsMessage save];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDictionary *) extraPropertiesForMessage: (NSString *) messageKey
|
||||||
|
{
|
||||||
|
NSString *messageUid;
|
||||||
|
|
||||||
|
messageUid = [self messageUIDFromMessageKey: messageKey];
|
||||||
|
return [[[versionsMessage properties] objectForKey: @"ExtraMessagesProperties"]
|
||||||
|
objectForKey: messageUid];
|
||||||
|
}
|
||||||
|
|
||||||
- (NSArray *) getDeletedKeysFromChangeNumber: (uint64_t) changeNum
|
- (NSArray *) getDeletedKeysFromChangeNumber: (uint64_t) changeNum
|
||||||
andCN: (NSNumber **) cnNbr
|
andCN: (NSNumber **) cnNbr
|
||||||
inTableType: (uint8_t) tableType
|
inTableType: (uint8_t) tableType
|
||||||
|
|
Loading…
Reference in New Issue