-
Notifications
You must be signed in to change notification settings - Fork 259
Description
Issue with getAdvancedHistoryMessageList Returning Incorrect Messages When Fetching from Middle Position
Problem Description
When searching for a specific message and fetching surrounding messages, getAdvancedHistoryMessageList returns incorrect messages, while getAdvancedHistoryMessageListReverse returns correct results. Sequential fetching works fine.
Code Implementation
Future<List<Message>> getTargetMessageList({
required String conversationID,
Message? targetMessage,
}) async {
if (targetMessage == null) return [];
try {
// Fetch messages before target message
final beforeResult = await OpenIM.iMManager.messageManager.getAdvancedHistoryMessageList(
conversationID: conversationID,
startMsg: targetMessage,
count: 10,
);
// Fetch messages after target message
final afterResult = await OpenIM.iMManager.messageManager.getAdvancedHistoryMessageListReverse(
conversationID: conversationID,
startMsg: targetMessage,
count: 10,
);
return [
...beforeResult.messageList ?? [],
targetMessage,
...afterResult.messageList ?? []
];
} catch (e) {
rethrow;
}
}
Environment
Device: Android API 33, macOS
Version: 3.8.3-alpha.23
Behavior: Same issue occurs on both platforms
Current Status
✅ getAdvancedHistoryMessageListReverse: Returns correct messages
❌ getAdvancedHistoryMessageList: Returns incorrect messages when starting from middle position
✅ Sequential fetching: Works correctly
Expected Behavior
Both getAdvancedHistoryMessageList and getAdvancedHistoryMessageListReverse should return correct messages when fetching from a specific target message position.