messagelist: actually implement before/after properly
This commit is contained in:
@@ -85,15 +85,21 @@
|
|||||||
[chat loadMessagesBeforeDate:beforeDate limit:limit loadImmediately:YES];
|
[chat loadMessagesBeforeDate:beforeDate limit:limit loadImmediately:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IMMessage *beforeMessage = beforeMessageGUID ? [chat messageForGUID:beforeMessageGUID] : nil;
|
||||||
|
IMMessage *afterMessage = afterMessageGUID ? [chat messageForGUID:afterMessageGUID] : nil;
|
||||||
|
|
||||||
[[chat chatItems] enumerateMessagesWithOptions:0 usingBlock:^(IMMessage *message, BOOL *stop) {
|
[[chat chatItems] enumerateMessagesWithOptions:0 usingBlock:^(IMMessage *message, BOOL *stop) {
|
||||||
// Assume "beforeMessageGUID" is exclusive
|
BOOL includeMessage = YES;
|
||||||
if ([[message guid] isEqual:beforeMessageGUID]) {
|
NSDate *messageDate = [message time];
|
||||||
*stop = YES;
|
if (beforeMessage && [[beforeMessage time] compare:messageDate] != NSOrderedDescending) {
|
||||||
return;
|
includeMessage = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assume "afterMessageGUID" is exclusive.
|
if (afterMessage && [[afterMessage time] compare:messageDate] != NSOrderedAscending) {
|
||||||
if (![[message guid] isEqual:afterMessageGUID]) {
|
includeMessage = NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (includeMessage) {
|
||||||
NSDictionary *messageDict = [message mbim_dictionaryRepresentation];
|
NSDictionary *messageDict = [message mbim_dictionaryRepresentation];
|
||||||
[messages addObject:messageDict];
|
[messages addObject:messageDict];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user