Adapt from summaries to rooms & little naming fixes

This commit is contained in:
ismailgulek
2021-12-29 17:40:09 +03:00
parent 94de6b33e3
commit 4f0db984bd
6 changed files with 61 additions and 54 deletions
@@ -1826,27 +1826,31 @@ static NSArray<NSNumber*> *initialSyncSilentErrorsHTTPStatusCodes;
dispatch_group_t dispatchGroup = dispatch_group_create();
for (MXRoomSummary *summary in mxSession.roomsSummaries)
for (MXRoom *room in mxSession.rooms)
{
dispatch_group_enter(dispatchGroup);
[summary.mxSession eventWithEventId:summary.lastMessage.eventId
inRoom:summary.roomId
success:^(MXEvent *event) {
if (event)
{
if (summary.lastMessage.others == nil)
MXRoomSummary *summary = room.summary;
if (summary)
{
dispatch_group_enter(dispatchGroup);
[summary.mxSession eventWithEventId:summary.lastMessage.eventId
inRoom:summary.roomId
success:^(MXEvent *event) {
if (event)
{
summary.lastMessage.others = [NSMutableDictionary dictionary];
if (summary.lastMessage.others == nil)
{
summary.lastMessage.others = [NSMutableDictionary dictionary];
}
summary.lastMessage.others[@"lastEventDate"] = [eventFormatter dateStringFromEvent:event withTime:YES];
[self->mxSession.store.summariesModule storeSummary:summary];
}
summary.lastMessage.others[@"lastEventDate"] = [eventFormatter dateStringFromEvent:event withTime:YES];
[self->mxSession.store.summariesModule storeSummary:summary];
}
dispatch_group_leave(dispatchGroup);
} failure:^(NSError *error) {
dispatch_group_leave(dispatchGroup);
}];
dispatch_group_leave(dispatchGroup);
} failure:^(NSError *error) {
dispatch_group_leave(dispatchGroup);
}];
}
}
dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(), ^{
@@ -311,16 +311,20 @@ static NSTimeInterval const roomSummaryChangeThrottlerDelay = .5;
NSDate *startDate = [NSDate date];
for (MXRoomSummary *roomSummary in self.mxSession.roomsSummaries)
for (MXRoom *room in self.mxSession.rooms)
{
// Filter out private rooms with conference users
if (!roomSummary.isConferenceUserRoom // @TODO Abstract this condition with roomSummary.hiddenFromUser
&& !roomSummary.hiddenFromUser)
MXRoomSummary *summary = room.summary;
if (summary)
{
id<MXKRecentCellDataStoring> cellData = [[class alloc] initWithRoomSummary:roomSummary dataSource:self];
if (cellData)
// Filter out private rooms with conference users
if (!summary.isConferenceUserRoom // @TODO Abstract this condition with roomSummary.hiddenFromUser
&& !summary.hiddenFromUser)
{
[internalCellDataArray addObject:cellData];
id<MXKRecentCellDataStoring> cellData = [[class alloc] initWithRoomSummary:summary dataSource:self];
if (cellData)
{
[internalCellDataArray addObject:cellData];
}
}
}
}