Lazy-loading server side: Use new async [MXRoom members:lazyLoadedMembers:]

This commit is contained in:
manuroe
2018-08-01 17:25:38 +02:00
parent 487a7a2802
commit 9eab1cbd11
2 changed files with 36 additions and 18 deletions
@@ -66,7 +66,8 @@
// Compute active members count
MXWeakify(self);
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
void (^onRoomMembers)(MXRoomMembers *roomMembers, BOOL allMembers) = ^void(MXRoomMembers *roomMembers, BOOL allMembers)
{
MXStrongifyAndReturnIfNil(self);
NSArray *members = [roomMembers membersWithMembership:MXMembershipJoin includeConferenceUser:NO];
@@ -109,6 +110,14 @@
// Should not happen
self.roomMembers.text = nil;
}
};
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
onRoomMembers(roomMembers, YES);
} lazyLoadedMembers:^(MXRoomMembers *lazyLoadedMembers) {
onRoomMembers(lazyLoadedMembers, NO);
} failure:^(NSError *error) {
NSLog(@"[ExpandedRoomTitleView] refreshDisplay: Cannot get all room members");
}];
}
else
@@ -183,7 +183,8 @@
// Compute active members count, and look for the inviter
MXWeakify(self);
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
void (^onRoomMembers)(MXRoomMembers *roomMembers, BOOL allMembers) = ^void(MXRoomMembers *roomMembers, BOOL allMembers)
{
MXStrongifyAndReturnIfNil(self);
NSArray *members = roomMembers.members;
@@ -213,24 +214,32 @@
// FIXME: Display members status when it will be available
self.roomMembers.text = nil;
// if (memberCount)
// {
// if (activeCount > 1)
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_multiple_active_members", @"Vector", nil), @(activeCount), @(memberCount)];
// }
// else
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_one_active_member", @"Vector", nil), @(activeCount), @(memberCount)];
// }
// }
// else
// {
// // Should not happen
// self.roomMembers.text = nil;
// }
// if (memberCount)
// {
// if (activeCount > 1)
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_multiple_active_members", @"Vector", nil), @(activeCount), @(memberCount)];
// }
// else
// {
// self.roomMembers.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_title_one_active_member", @"Vector", nil), @(activeCount), @(memberCount)];
// }
// }
// else
// {
// // Should not happen
// self.roomMembers.text = nil;
// }
self.previewLabel.text = [NSString stringWithFormat:NSLocalizedStringFromTable(@"room_preview_invitation_format", @"Vector", nil), inviter];
};
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
onRoomMembers(roomMembers, YES);
}lazyLoadedMembers:^(MXRoomMembers *lazyLoadedMembers) {
onRoomMembers(lazyLoadedMembers, NO);
} failure:^(NSError *error) {
NSLog(@"[PreviewRoomTitleView] refreshDisplay: Cannot get all room members");
}];
}
else