Skip to content

[BUG] getAdvancedHistoryMessageList data bug #225

@ronin520419

Description

@ronin520419

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions