mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Recents-Room details: Handle correctly left rooms
This commit is contained in:
parent
d8c3cf8de9
commit
17aaf5e078
2 changed files with 9 additions and 8 deletions
|
@ -199,14 +199,9 @@
|
|||
recentsListener = [mxHandler.mxSession listenToEventsOfTypes:mxHandler.eventsFilterForMessages onEvent:^(MXEvent *event, MXEventDirection direction, id customObject) {
|
||||
// Consider only live event
|
||||
if (direction == MXEventDirectionForwards) {
|
||||
// Check user's membership (We will remove left rooms from recents)
|
||||
BOOL isLeft = NO;
|
||||
if ([customObject isKindOfClass:[MXRoomState class]]) {
|
||||
MXRoomState *roomState = (MXRoomState*)customObject;
|
||||
if (roomState.membership == MXMembershipLeave || roomState.membership == MXMembershipBan) {
|
||||
isLeft = YES;
|
||||
}
|
||||
}
|
||||
// Check user's membership in live room state (We will remove left rooms from recents)
|
||||
MXRoom *mxRoom = [mxHandler.mxSession roomWithRoomId:event.roomId];
|
||||
BOOL isLeft = (mxRoom == nil || mxRoom.state.membership == MXMembershipLeave || mxRoom.state.membership == MXMembershipBan);
|
||||
|
||||
// Consider this new event as unread only if the sender is not the user and if the room is not visible
|
||||
BOOL isUnread = (![event.userId isEqualToString:mxHandler.userId]
|
||||
|
|
|
@ -294,6 +294,12 @@ NSString *const kCmdResetUserPowerLevel = @"/deop";
|
|||
|
||||
// Handle first live events
|
||||
if (direction == MXEventDirectionForwards) {
|
||||
// Check user's membership in live room state (Indeed we have to go back on recents when user leaves, or is kicked/banned)
|
||||
if (mxRoom.state.membership == MXMembershipLeave || mxRoom.state.membership == MXMembershipBan) {
|
||||
[self.navigationController popViewControllerAnimated:NO];
|
||||
return;
|
||||
}
|
||||
|
||||
// We will scroll to bottom after updating tableView only if the most recent message is entirely visible.
|
||||
CGFloat maxPositionY = self.messagesTableView.contentOffset.y + (self.messagesTableView.frame.size.height - self.messagesTableView.contentInset.bottom);
|
||||
shouldScrollToBottom = (maxPositionY >= self.messagesTableView.contentSize.height);
|
||||
|
|
Loading…
Reference in a new issue