Private
Public Access
1
0

messagelist: actually implement before/after properly

This commit is contained in:
2025-06-13 17:42:05 -07:00
parent 7cceb5b92d
commit aace2a8dfc

View File

@@ -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];
} }