diff --git a/Riot/Modules/MatrixKit/Models/RoomList/MXKRecentCellData.m b/Riot/Modules/MatrixKit/Models/RoomList/MXKRecentCellData.m index b2bfc1885..3bd13a3d2 100644 --- a/Riot/Modules/MatrixKit/Models/RoomList/MXKRecentCellData.m +++ b/Riot/Modules/MatrixKit/Models/RoomList/MXKRecentCellData.m @@ -46,7 +46,14 @@ - (MXSession *)mxSession { - return dataSource.mxSession; + MXSession *session = dataSource.mxSession; + + if (session == nil) + { + session = roomSummary.mxSession; + } + + return session; } - (NSString*)lastEventDate diff --git a/RiotShareExtension/Shared/ShareDataSource.m b/RiotShareExtension/Shared/ShareDataSource.m index 29b081683..e63a8d762 100644 --- a/RiotShareExtension/Shared/ShareDataSource.m +++ b/RiotShareExtension/Shared/ShareDataSource.m @@ -77,18 +77,21 @@ - (void)loadCellData { - [self.fileStore.summariesModule fetchAllSummaries:^(NSArray *roomsSummaries) { + [self.fileStore.summariesModule fetchAllSummaries:^(NSArray> *roomsSummaries) { NSMutableArray *cellData = [NSMutableArray array]; // Add a fake matrix session to each room summary to provide it a REST client (used to handle correctly the room avatar). MXSession *session = [[MXSession alloc] initWithMatrixRestClient:[[MXRestClient alloc] initWithCredentials:self.credentials andOnUnrecognizedCertificateBlock:nil]]; - for (MXRoomSummary *roomSummary in roomsSummaries) + for (id roomSummary in roomsSummaries) { if (!roomSummary.hiddenFromUser && roomSummary.roomType == MXRoomTypeRoom) { - [roomSummary setMatrixSession:session]; + if ([roomSummary respondsToSelector:@selector(setMatrixSession:)]) + { + [roomSummary setMatrixSession:session]; + } MXKRecentCellData *recentCellData = [[MXKRecentCellData alloc] initWithRoomSummary:roomSummary dataSource:nil];