mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 00:52:43 +02:00
New async [MXRoom state:]: Make Riot build
This commit is contained in:
@@ -931,9 +931,9 @@
|
||||
Class roomInputToolbarViewClass = RoomInputToolbarView.class;
|
||||
|
||||
// Check the user has enough power to post message
|
||||
if (self.roomDataSource.room.state)
|
||||
if (self.roomDataSource.roomState)
|
||||
{
|
||||
MXRoomPowerLevels *powerLevels = self.roomDataSource.room.state.powerLevels;
|
||||
MXRoomPowerLevels *powerLevels = self.roomDataSource.roomState.powerLevels;
|
||||
NSInteger userPowerLevel = [powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId];
|
||||
|
||||
BOOL canSend = (userPowerLevel >= [powerLevels minimumPowerLevelForSendingEventAsMessage:kMXEventTypeStringRoomMessage]);
|
||||
@@ -1894,7 +1894,7 @@
|
||||
{
|
||||
if ([actionIdentifier isEqualToString:kMXKRoomBubbleCellTapOnAvatarView])
|
||||
{
|
||||
selectedRoomMember = [self.roomDataSource.room.state.members memberWithUserId:userInfo[kMXKRoomBubbleCellUserIdKey]];
|
||||
selectedRoomMember = [self.roomDataSource.roomState.members memberWithUserId:userInfo[kMXKRoomBubbleCellUserIdKey]];
|
||||
if (selectedRoomMember)
|
||||
{
|
||||
[self performSegueWithIdentifier:@"showMemberDetails" sender:self];
|
||||
@@ -1903,7 +1903,7 @@
|
||||
else if ([actionIdentifier isEqualToString:kMXKRoomBubbleCellLongPressOnAvatarView])
|
||||
{
|
||||
// Add the member display name in text input
|
||||
MXRoomMember *roomMember = [self.roomDataSource.room.state.members memberWithUserId:userInfo[kMXKRoomBubbleCellUserIdKey]];
|
||||
MXRoomMember *roomMember = [self.roomDataSource.roomState.members memberWithUserId:userInfo[kMXKRoomBubbleCellUserIdKey]];
|
||||
if (roomMember)
|
||||
{
|
||||
[self mention:roomMember];
|
||||
@@ -2656,7 +2656,7 @@
|
||||
|
||||
NSString *userId = absoluteURLString;
|
||||
|
||||
MXRoomMember* member = [self.roomDataSource.room.state.members memberWithUserId:userId];
|
||||
MXRoomMember* member = [self.roomDataSource.roomState.members memberWithUserId:userId];
|
||||
if (member)
|
||||
{
|
||||
// Use the room member detail VC for room members
|
||||
@@ -2765,7 +2765,11 @@
|
||||
// Files tab
|
||||
[titles addObject: NSLocalizedStringFromTable(@"room_details_files", @"Vector", nil)];
|
||||
RoomFilesViewController *roomFilesViewController = [RoomFilesViewController roomViewController];
|
||||
MXKRoomDataSource *roomFilesDataSource = [[MXKRoomDataSource alloc] initWithRoomId:roomId andMatrixSession:session];
|
||||
// @TODO (async-state): This call should be synchronous. Every thing will be fine
|
||||
__block MXKRoomDataSource *roomFilesDataSource;
|
||||
[MXKRoomDataSource loadRoomDataSourceWithRoomId:roomId andMatrixSession:session onComplete:^(id roomDataSource) {
|
||||
roomFilesDataSource = roomDataSource;
|
||||
}];
|
||||
roomFilesDataSource.filterMessagesWithURL = YES;
|
||||
[roomFilesDataSource finalizeInitialization];
|
||||
// Give the data source ownership to the room files view controller.
|
||||
@@ -2858,25 +2862,18 @@
|
||||
contactsDataSource.contactCellAccessoryImage = [UIImage imageNamed:@"plus_icon"];
|
||||
|
||||
// List all the participants matrix user id to ignore them during the contacts search.
|
||||
MXSession* session = self.roomDataSource.mxSession;
|
||||
NSString* roomId = self.roomDataSource.roomId;
|
||||
MXRoom *room = [session roomWithRoomId:roomId];
|
||||
if (room)
|
||||
NSArray *members = [self.roomDataSource.roomState.members membersWithoutConferenceUser];
|
||||
for (MXRoomMember *mxMember in members)
|
||||
{
|
||||
NSArray *members = [room.state.members membersWithoutConferenceUser];
|
||||
|
||||
for (MXRoomMember *mxMember in members)
|
||||
// Check his status
|
||||
if (mxMember.membership == MXMembershipJoin || mxMember.membership == MXMembershipInvite)
|
||||
{
|
||||
// Check his status
|
||||
if (mxMember.membership == MXMembershipJoin || mxMember.membership == MXMembershipInvite)
|
||||
{
|
||||
// Create the contact related to this member
|
||||
MXKContact *contact = [[MXKContact alloc] initMatrixContactWithDisplayName:mxMember.displayname andMatrixID:mxMember.userId];
|
||||
[contactsDataSource.ignoredContactsByMatrixId setObject:contact forKey:mxMember.userId];
|
||||
}
|
||||
// Create the contact related to this member
|
||||
MXKContact *contact = [[MXKContact alloc] initMatrixContactWithDisplayName:mxMember.displayname andMatrixID:mxMember.userId];
|
||||
[contactsDataSource.ignoredContactsByMatrixId setObject:contact forKey:mxMember.userId];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[contactsPickerViewController showSearch:YES];
|
||||
contactsPickerViewController.searchBar.placeholder = NSLocalizedStringFromTable(@"room_participants_invite_another_user", @"Vector", nil);
|
||||
|
||||
@@ -3067,7 +3064,7 @@
|
||||
|
||||
// In case of conference call, check that the user has enough power level
|
||||
else if (self.roomDataSource.room.summary.membersCount.joined > 2 &&
|
||||
![MXCallManager canPlaceConferenceCallInRoom:self.roomDataSource.room])
|
||||
![MXCallManager canPlaceConferenceCallInRoom:self.roomDataSource.room roomState:self.roomDataSource.roomState])
|
||||
{
|
||||
[currentAlert dismissViewControllerAnimated:NO completion:nil];
|
||||
|
||||
@@ -3195,18 +3192,19 @@
|
||||
[self showExpandedHeader:NO];
|
||||
// Dismiss potential keyboard.
|
||||
[self dismissKeyboard];
|
||||
|
||||
MXKRoomDataSource *roomDataSource;
|
||||
|
||||
// Jump to the last unread event by using a temporary room data source initialized with the last unread event id.
|
||||
roomDataSource = [[RoomDataSource alloc] initWithRoomId:self.roomDataSource.roomId initialEventId:self.roomDataSource.room.accountData.readMarkerEventId andMatrixSession:self.mainSession];
|
||||
[roomDataSource finalizeInitialization];
|
||||
|
||||
// Center the bubbles table content on the bottom of the read marker event in order to display correctly the read marker view.
|
||||
self.centerBubblesTableViewContentOnTheInitialEventBottom = YES;
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
// Give the data source ownership to the room view controller.
|
||||
self.hasRoomDataSourceOwnership = YES;
|
||||
[RoomDataSource loadRoomDataSourceWithRoomId:self.roomDataSource.roomId initialEventId:self.roomDataSource.room.accountData.readMarkerEventId andMatrixSession:self.mainSession onComplete:^(id roomDataSource) {
|
||||
|
||||
[roomDataSource finalizeInitialization];
|
||||
|
||||
// Center the bubbles table content on the bottom of the read marker event in order to display correctly the read marker view.
|
||||
self.centerBubblesTableViewContentOnTheInitialEventBottom = YES;
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
// Give the data source ownership to the room view controller.
|
||||
self.hasRoomDataSourceOwnership = YES;
|
||||
}];
|
||||
}
|
||||
else if (sender == self.resetReadMarkerButton)
|
||||
{
|
||||
@@ -3474,13 +3472,15 @@
|
||||
// If an event was specified, replace the datasource by a non live datasource showing the event
|
||||
if (eventId)
|
||||
{
|
||||
RoomDataSource *roomDataSource = [[RoomDataSource alloc] initWithRoomId:self.roomDataSource.roomId initialEventId:eventId andMatrixSession:self.mainSession];
|
||||
[roomDataSource finalizeInitialization];
|
||||
roomDataSource.markTimelineInitialEvent = YES;
|
||||
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
self.hasRoomDataSourceOwnership = YES;
|
||||
[RoomDataSource loadRoomDataSourceWithRoomId:self.roomDataSource.roomId initialEventId:eventId andMatrixSession:self.mainSession onComplete:^(id roomDataSource) {
|
||||
|
||||
[roomDataSource finalizeInitialization];
|
||||
((RoomDataSource*)roomDataSource).markTimelineInitialEvent = YES;
|
||||
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
self.hasRoomDataSourceOwnership = YES;
|
||||
}];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3630,7 +3630,7 @@
|
||||
{
|
||||
NSString* name = [currentTypingUsers objectAtIndex:i];
|
||||
|
||||
MXRoomMember* member = [self.roomDataSource.room.state.members memberWithUserId:name];
|
||||
MXRoomMember* member = [self.roomDataSource.roomState.members memberWithUserId:name];
|
||||
|
||||
if (member && member.displayname.length)
|
||||
{
|
||||
@@ -3763,7 +3763,8 @@
|
||||
- (NSUInteger)widgetsCount:(BOOL)includeUserWidgets
|
||||
{
|
||||
NSUInteger widgetsCount = [[WidgetManager sharedManager] widgetsNotOfTypes:@[kWidgetTypeJitsi]
|
||||
inRoom:self.roomDataSource.room].count;
|
||||
inRoom:self.roomDataSource.room
|
||||
withRoomState:self.roomDataSource.roomState].count;
|
||||
if (includeUserWidgets)
|
||||
{
|
||||
widgetsCount += [[WidgetManager sharedManager] userWidgets:self.roomDataSource.room.mxSession].count;
|
||||
@@ -3792,7 +3793,7 @@
|
||||
{
|
||||
[roomActivitiesView displayNetworkErrorNotification:NSLocalizedStringFromTable(@"room_offline_notification", @"Vector", nil)];
|
||||
}
|
||||
else if (customizedRoomDataSource.room.state.isOngoingConferenceCall)
|
||||
else if (customizedRoomDataSource.roomState.isOngoingConferenceCall)
|
||||
{
|
||||
// Show the "Ongoing conference call" banner only if the user is not in the conference
|
||||
MXCall *callInRoom = [self.roomDataSource.mxSession.callManager callInRoom:self.roomDataSource.roomId];
|
||||
@@ -3937,24 +3938,26 @@
|
||||
{
|
||||
// Switch back to the room live timeline managed by MXKRoomDataSourceManager
|
||||
MXKRoomDataSourceManager *roomDataSourceManager = [MXKRoomDataSourceManager sharedManagerForMatrixSession:self.mainSession];
|
||||
MXKRoomDataSource *roomDataSource = [roomDataSourceManager roomDataSourceForRoom:self.roomDataSource.roomId create:YES];
|
||||
|
||||
// Scroll to bottom the bubble history on the display refresh.
|
||||
shouldScrollToBottomOnTableRefresh = YES;
|
||||
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
// The room view controller do not have here the data source ownership.
|
||||
self.hasRoomDataSourceOwnership = NO;
|
||||
|
||||
[self refreshActivitiesViewDisplay];
|
||||
[self refreshJumpToLastUnreadBannerDisplay];
|
||||
|
||||
if (self.saveProgressTextInput)
|
||||
{
|
||||
// Restore the potential message partially typed before jump to last unread messages.
|
||||
self.inputToolbarView.textMessage = roomDataSource.partialTextMessage;
|
||||
}
|
||||
|
||||
[roomDataSourceManager roomDataSourceForRoom:self.roomDataSource.roomId create:YES onComplete:^(MXKRoomDataSource *roomDataSource) {
|
||||
|
||||
// Scroll to bottom the bubble history on the display refresh.
|
||||
shouldScrollToBottomOnTableRefresh = YES;
|
||||
|
||||
[self displayRoom:roomDataSource];
|
||||
|
||||
// The room view controller do not have here the data source ownership.
|
||||
self.hasRoomDataSourceOwnership = NO;
|
||||
|
||||
[self refreshActivitiesViewDisplay];
|
||||
[self refreshJumpToLastUnreadBannerDisplay];
|
||||
|
||||
if (self.saveProgressTextInput)
|
||||
{
|
||||
// Restore the potential message partially typed before jump to last unread messages.
|
||||
self.inputToolbarView.textMessage = roomDataSource.partialTextMessage;
|
||||
}
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user