MESSENGER-5203 add federation icon to tableview cell

This commit is contained in:
JanNiklas Grabowski
2023-10-31 17:10:22 +01:00
parent 2e4f9f59ab
commit 5f5aa69a73
6 changed files with 120 additions and 0 deletions
@@ -38,6 +38,34 @@
// Initialize unread count badge
[_missedNotifAndUnreadBadgeBgView.layer setCornerRadius:10];
_missedNotifAndUnreadBadgeBgViewWidthConstraint.constant = 0;
// bwi: 5203 add federation icon
if (BWIBuildSettings.shared.isFederationEnabled)
{
if ([ThemeService.shared isCurrentThemeDark])
{
self.federationImage = AssetImages.roomFederatedBumIconDark.image;
}
else
{
self.federationImage = AssetImages.roomFederatedBumIconLight.image;
}
self.federationImageView = [[UIImageView alloc] initWithImage:self.federationImage];
self.federationImageView.translatesAutoresizingMaskIntoConstraints = NO;
self.federationImageView.contentMode = UIViewContentModeScaleAspectFit;
[self.contentView addSubview:self.federationImageView];
// scale and new with federation icon
float scaleFactor = ((self.roomAvatar.frame.size.height * 0.34) / self.federationImage.size.height);
float imageWidth = scaleFactor * self.federationImage.size.width;
// offset federation icon
float offset = 3 * scaleFactor;
[self.federationImageView.bottomAnchor constraintEqualToAnchor:self.roomAvatar.bottomAnchor constant:0].active = YES;
[self.federationImageView.trailingAnchor constraintEqualToAnchor:self.roomAvatar.trailingAnchor constant:offset].active = YES;
[self.federationImageView.heightAnchor constraintEqualToConstant:(self.roomAvatar.frame.size.height * 0.34)].active = YES;
[self.federationImageView.widthAnchor constraintEqualToConstant:imageWidth].active = YES;
}
}
- (void)customizeTableViewCellRendering
@@ -61,6 +89,20 @@
// Round image view
[_roomAvatar.layer setCornerRadius:_roomAvatar.frame.size.width / 2];
_roomAvatar.clipsToBounds = YES;
// bwi: 5203 add federation icon
if (BWIBuildSettings.shared.isFederationEnabled)
{
if ([ThemeService.shared isCurrentThemeDark])
{
self.federationImage = AssetImages.roomFederatedBumIconDark.image;
}
else
{
self.federationImage = AssetImages.roomFederatedBumIconLight.image;
}
self.federationImageView.image = self.federationImage;
}
}
- (void)render:(MXKCellData *)cellData
@@ -74,6 +116,43 @@
roomCellData = (id<MXKRecentCellDataStoring>)cellData;
if (roomCellData)
{
// bwi: 5203 add federation icon
if (BWIBuildSettings.shared.isFederationEnabled)
{
MXRoom *room = [roomCellData.mxSession roomWithRoomId:roomCellData.roomSummary.roomId];
if (room.isPersonalNotesRoom)
{
self.federationImageView.hidden = YES;
}
else
{
if (room.isDirect)
{
if ([room isDMFederated])
{
self.federationImageView.hidden = NO;
}
else
{
self.federationImageView.hidden = YES;
}
}
else if ([room isRoomFederated])
{
self.federationImageView.hidden = NO;
}
else
{
self.federationImageView.hidden = YES;
}
}
}
else
{
self.federationImageView.hidden = YES;
}
// Report computed values as is
self.roomTitle.text = roomCellData.roomDisplayname;
self.lastEventDate.text = roomCellData.lastEventDate;