mirror of
https://github.com/vector-im/element-ios.git
synced 2024-10-01 00:32:41 +00:00
Merge pull request #1553 from vector-im/fix_ram_usage_peak
EventFormatter: Improve updateRoomSummary:withStateEvents: to avoid t…
This commit is contained in:
commit
4cf2d2ad1f
2 changed files with 34 additions and 24 deletions
|
@ -534,6 +534,11 @@ NSString *const kAppDelegateNetworkStatusDidChangeNotification = @"kAppDelegateN
|
|||
[self stopGoogleAnalytics];
|
||||
}
|
||||
|
||||
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
|
||||
{
|
||||
NSLog(@"[AppDelegate] applicationDidReceiveMemoryWarning");
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
|
||||
{
|
||||
BOOL continueUserActivity = NO;
|
||||
|
|
|
@ -224,9 +224,9 @@
|
|||
BOOL ret = [super session:session updateRoomSummary:summary withStateEvents:stateEvents];
|
||||
|
||||
// Check whether the room display name and/or the room avatar url should be updated at Riot level.
|
||||
NSString *riotRoomDisplayName;
|
||||
NSString *riotRoomAvatarURL;
|
||||
|
||||
BOOL refreshRiotRoomDisplayName = NO;
|
||||
BOOL refreshRiotRoomAvatarURL = NO;
|
||||
|
||||
for (MXEvent *event in stateEvents)
|
||||
{
|
||||
switch (event.eventType)
|
||||
|
@ -235,45 +235,50 @@
|
|||
case MXEventTypeRoomAliases:
|
||||
case MXEventTypeRoomCanonicalAlias:
|
||||
{
|
||||
if (!riotRoomDisplayName.length)
|
||||
{
|
||||
riotRoomDisplayName = [self riotRoomDisplayNameFromRoomState:summary.room.state];
|
||||
}
|
||||
refreshRiotRoomDisplayName = YES;
|
||||
break;
|
||||
}
|
||||
case MXEventTypeRoomMember:
|
||||
{
|
||||
if (!riotRoomDisplayName.length)
|
||||
{
|
||||
riotRoomDisplayName = [self riotRoomDisplayNameFromRoomState:summary.room.state];
|
||||
}
|
||||
refreshRiotRoomDisplayName = YES;
|
||||
// Do not break here to check avatar url too.
|
||||
}
|
||||
case MXEventTypeRoomAvatar:
|
||||
{
|
||||
if (!riotRoomAvatarURL.length)
|
||||
{
|
||||
riotRoomAvatarURL = [self riotRoomAvatarURLFromRoomState:summary.room.state];
|
||||
}
|
||||
refreshRiotRoomAvatarURL = YES;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (refreshRiotRoomDisplayName && refreshRiotRoomAvatarURL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (riotRoomDisplayName.length && ![summary.displayname isEqualToString:riotRoomDisplayName])
|
||||
|
||||
if (refreshRiotRoomDisplayName)
|
||||
{
|
||||
summary.displayname = riotRoomDisplayName;
|
||||
ret = YES;
|
||||
NSString *riotRoomDisplayName = [self riotRoomDisplayNameFromRoomState:summary.room.state];
|
||||
|
||||
if (riotRoomDisplayName.length && ![summary.displayname isEqualToString:riotRoomDisplayName])
|
||||
{
|
||||
summary.displayname = riotRoomDisplayName;
|
||||
ret = YES;
|
||||
}
|
||||
}
|
||||
|
||||
if (riotRoomAvatarURL.length && ![summary.avatar isEqualToString:riotRoomAvatarURL])
|
||||
if (refreshRiotRoomAvatarURL)
|
||||
{
|
||||
summary.avatar = riotRoomAvatarURL;
|
||||
ret = YES;
|
||||
NSString *riotRoomAvatarURL = [self riotRoomAvatarURLFromRoomState:summary.room.state];
|
||||
|
||||
if (riotRoomAvatarURL.length && ![summary.avatar isEqualToString:riotRoomAvatarURL])
|
||||
{
|
||||
summary.avatar = riotRoomAvatarURL;
|
||||
ret = YES;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue