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];
}
IMMessage *beforeMessage = beforeMessageGUID ? [chat messageForGUID:beforeMessageGUID] : nil;
IMMessage *afterMessage = afterMessageGUID ? [chat messageForGUID:afterMessageGUID] : nil;
[[chat chatItems] enumerateMessagesWithOptions:0 usingBlock:^(IMMessage *message, BOOL *stop) {
// Assume "beforeMessageGUID" is exclusive
if ([[message guid] isEqual:beforeMessageGUID]) {
*stop = YES;
return;
BOOL includeMessage = YES;
NSDate *messageDate = [message time];
if (beforeMessage && [[beforeMessage time] compare:messageDate] != NSOrderedDescending) {
includeMessage = NO;
}
// Assume "afterMessageGUID" is exclusive.
if (![[message guid] isEqual:afterMessageGUID]) {
if (afterMessage && [[afterMessage time] compare:messageDate] != NSOrderedAscending) {
includeMessage = NO;
}
if (includeMessage) {
NSDictionary *messageDict = [message mbim_dictionaryRepresentation];
[messages addObject:messageDict];
}