diff --git a/ChangeLog b/ChangeLog index f43da2d18..d72fb98f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ overriden method. Made module able to handle SOGoMailObject as well, since we can possibly have such objects as value for sogoObject. + (-getPrImportance:inMemCtx:): overriden method. * OpenChange/MAPIApplication.m (+isCachingEnabled): new overriden method that returns "NO" in order to avoid leaking dictionaries diff --git a/OpenChange/MAPIStoreDraftsMessage.m b/OpenChange/MAPIStoreDraftsMessage.m index 985ae077d..533d3a433 100644 --- a/OpenChange/MAPIStoreDraftsMessage.m +++ b/OpenChange/MAPIStoreDraftsMessage.m @@ -146,6 +146,35 @@ typedef void (*getMessageData_inMemCtx_) (MAPIStoreMessage *, SEL, [super getMessageData: dataPtr inMemCtx: memCtx]; } +- (int) getPrImportance: (void **) data + inMemCtx: (TALLOC_CTX *) memCtx +{ + uint32_t v; + NSString *s; + + if ([sogoObject isKindOfClass: SOGoDraftObjectK]) + { + if (!headerSetup) + { + [sogoObject fetchInfo]; + headerSetup = YES; + } + s = [[sogoObject headers] objectForKey: @"X-Priority"]; + v = 0x1; + + if ([s hasPrefix: @"1"]) v = 0x2; + else if ([s hasPrefix: @"2"]) v = 0x2; + else if ([s hasPrefix: @"4"]) v = 0x0; + else if ([s hasPrefix: @"5"]) v = 0x0; + + *data = MAPILongValue (memCtx, v); + } + else + [super getPrImportance: data inMemCtx: memCtx]; + + return MAPISTORE_SUCCESS; +} + - (int) getPrMessageFlags: (void **) data inMemCtx: (TALLOC_CTX *) memCtx { diff --git a/OpenChange/MAPIStoreMailMessage.h b/OpenChange/MAPIStoreMailMessage.h index f3add0c81..db5d58966 100644 --- a/OpenChange/MAPIStoreMailMessage.h +++ b/OpenChange/MAPIStoreMailMessage.h @@ -50,6 +50,8 @@ - (int) getPrMessageFlags: (void **) data inMemCtx: (TALLOC_CTX *) memCtx; +- (int) getPrImportance: (void **) data + inMemCtx: (TALLOC_CTX *) memCtx; @end