mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-30 16:22:39 +00:00
Console: BugFix SYIOS-83 - When uploading an image, the bubble order jumps around
Keep our own timestamp clientside and ignore what the server says for uploaded attachments. The actual timestamp is considered in case of room history refresh.
This commit is contained in:
parent
f308f5bbb7
commit
9b91742ed9
1 changed files with 24 additions and 4 deletions
|
@ -724,7 +724,17 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
|
|||
[self removeMessage:message];
|
||||
}
|
||||
} else {
|
||||
[self removeMessage:message];
|
||||
// Workaround: in case of attachment, we keep our own timestamp and ignore server timestamp to prevent messages jump
|
||||
RoomMessageComponent *component = [message componentWithEventId:event.eventId];
|
||||
event.originServerTs = component.event.originServerTs;
|
||||
RoomMessage *aNewMessage = [[RoomMessage alloc] initWithEvent:event andRoomState:roomStateCpy];
|
||||
if (aNewMessage) {
|
||||
[self replaceMessage:message withMessage:aNewMessage];
|
||||
} else {
|
||||
// Ignore unsupported/unexpected events
|
||||
[self removeMessage:message];
|
||||
}
|
||||
isHandled = YES;
|
||||
}
|
||||
} else {
|
||||
// Here the received event id has not been found in current messages list.
|
||||
|
@ -747,7 +757,17 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
|
|||
[self removeMessage:message];
|
||||
}
|
||||
} else {
|
||||
[self removeMessage:message];
|
||||
// Workaround: in case of attachment, we keep our own timestamp and ignore server timestamp to prevent messages jump
|
||||
RoomMessageComponent *component = [message componentWithEventId:pendingEvent.eventId];
|
||||
event.originServerTs = component.event.originServerTs;
|
||||
RoomMessage *aNewMessage = [[RoomMessage alloc] initWithEvent:event andRoomState:roomStateCpy];
|
||||
if (aNewMessage) {
|
||||
[self replaceMessage:message withMessage:aNewMessage];
|
||||
} else {
|
||||
// Ignore unsupported/unexpected events
|
||||
[self removeMessage:message];
|
||||
}
|
||||
isHandled = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2108,11 +2128,11 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
|
|||
// Release here resources, and restore reusable cells
|
||||
|
||||
// Check table view members vs messages
|
||||
if (tableView == self.membersTableView) {
|
||||
if ([cell isKindOfClass:[RoomMemberTableCell class]]) {
|
||||
RoomMemberTableCell *memberCell = (RoomMemberTableCell*)cell;
|
||||
// Stop potential timer used to refresh member's presence
|
||||
[memberCell setRoomMember:nil withRoom:nil];
|
||||
} else if (tableView == self.messagesTableView) {
|
||||
} else if ([cell isKindOfClass:[RoomMessageTableCell class]]) {
|
||||
RoomMessageTableCell *msgCell = (RoomMessageTableCell*)cell;
|
||||
if ([cell isKindOfClass:[OutgoingMessageTableCell class]]) {
|
||||
OutgoingMessageTableCell *outgoingMsgCell = (OutgoingMessageTableCell*)cell;
|
||||
|
|
Loading…
Reference in a new issue