mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-25 02:52:45 +02:00
New async [MXRoom state:]: Create async factory methods for MXKRoomDataSource
This commit is contained in:
@@ -79,37 +79,45 @@
|
||||
|
||||
- (void)peekInRoom:(void (^)(BOOL succeeded))completion
|
||||
{
|
||||
MXWeakify(self);
|
||||
[_mxSession peekInRoomWithRoomId:_roomId success:^(MXPeekingRoom *peekingRoom) {
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
|
||||
// Create the room data source
|
||||
_roomDataSource = [[RoomDataSource alloc] initWithPeekingRoom:peekingRoom andInitialEventId:_eventId];
|
||||
[_roomDataSource finalizeInitialization];
|
||||
_roomDataSource.markTimelineInitialEvent = YES;
|
||||
MXWeakify(self);
|
||||
[RoomDataSource loadRoomDataSourceWithPeekingRoom:peekingRoom andInitialEventId:self.eventId onComplete:^(id roomDataSource) {
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
|
||||
_roomName = peekingRoom.summary.displayname;
|
||||
_roomAvatarUrl = peekingRoom.summary.avatar;
|
||||
|
||||
_roomTopic = [MXTools stripNewlineCharacters:peekingRoom.summary.topic];;
|
||||
_roomAliases = peekingRoom.state.aliases;
|
||||
|
||||
// Room members count
|
||||
// Note that room members presence/activity is not available
|
||||
_numJoinedMembers = 0;
|
||||
for (MXRoomMember *mxMember in peekingRoom.state.members.members)
|
||||
{
|
||||
if (mxMember.membership == MXMembershipJoin)
|
||||
self->_roomDataSource = roomDataSource;
|
||||
|
||||
[self.roomDataSource finalizeInitialization];
|
||||
self.roomDataSource.markTimelineInitialEvent = YES;
|
||||
|
||||
self->_roomName = peekingRoom.summary.displayname;
|
||||
self->_roomAvatarUrl = peekingRoom.summary.avatar;
|
||||
|
||||
self->_roomTopic = [MXTools stripNewlineCharacters:peekingRoom.summary.topic];;
|
||||
self->_roomAliases = self.roomDataSource.roomState.aliases;
|
||||
|
||||
// Room members count
|
||||
// Note that room members presence/activity is not available
|
||||
self->_numJoinedMembers = 0;
|
||||
for (MXRoomMember *mxMember in self.roomDataSource.roomState.members.members)
|
||||
{
|
||||
_numJoinedMembers ++;
|
||||
if (mxMember.membership == MXMembershipJoin)
|
||||
{
|
||||
self->_numJoinedMembers ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
completion(YES);
|
||||
completion(YES);
|
||||
}];
|
||||
|
||||
} failure:^(NSError *error) {
|
||||
MXStrongifyAndReturnIfNil(self);
|
||||
|
||||
_roomName = _roomId;
|
||||
self->_roomName = self->_roomId;
|
||||
completion(NO);
|
||||
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user