mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-30 05:06:58 +02:00
Added federation indicator to room info screen
This commit is contained in:
@@ -105,9 +105,17 @@ class RoomInfoBasicView: UIView {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
badgeImageView.image = viewData.encryptionImage
|
||||
roomNameLabel.text = viewData.roomDisplayName
|
||||
|
||||
// bwi: 5216 - federation
|
||||
if BWIBuildSettings.shared.isFederationEnabled && viewData.isFederated {
|
||||
badgeImageView.image = federationBadgeImage()
|
||||
roomNameLabel.numberOfLines = 2
|
||||
roomNameLabel.attributedText = roomNameWithFederationPill(roomDisplayName: viewData.roomDisplayName, font: roomNameLabel.font)
|
||||
} else {
|
||||
badgeImageView.image = viewData.encryptionImage
|
||||
roomNameLabel.text = viewData.roomDisplayName
|
||||
}
|
||||
|
||||
roomAddressLabel.text = viewData.mainRoomAlias
|
||||
roomAddressLabel.isHidden = roomAddressLabel.text?.isEmpty ?? true
|
||||
roomTopicTextView.text = viewData.roomTopic
|
||||
@@ -125,6 +133,46 @@ class RoomInfoBasicView: UIView {
|
||||
updateBadgeImageViewPosition(isPresenceDisplayed: viewData.directUserPresence != .unknown)
|
||||
}
|
||||
|
||||
// bwi: 5216 - federation
|
||||
private func federationBadgeImage() -> UIImage {
|
||||
if ThemeService.shared().isCurrentThemeDark() {
|
||||
return Asset.Images.roomFederatedBumIconDark.image
|
||||
} else {
|
||||
return Asset.Images.roomFederatedBumIconLight.image
|
||||
}
|
||||
}
|
||||
|
||||
// bwi: 5216 - federation
|
||||
private func roomNameWithFederationPill(roomDisplayName: String?, font: UIFont) -> NSAttributedString? {
|
||||
guard let roomDisplayName = roomDisplayName else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let attributedString = NSMutableAttributedString(string: roomDisplayName + " ")
|
||||
|
||||
// get the correct asset for the current theme and language
|
||||
let image: UIImage
|
||||
if Locale.current.languageCode == "de" {
|
||||
image = ThemeService.shared().isCurrentThemeDark() ? Asset.Images.federationPillDeBumDark.image : Asset.Images.federationPillDeBumLight.image
|
||||
} else {
|
||||
image = ThemeService.shared().isCurrentThemeDark() ? Asset.Images.federationPillEnBumDark.image : Asset.Images.federationPillEnBumLight.image
|
||||
}
|
||||
|
||||
// append the pill to the room name
|
||||
if image.size.width > 0.0 && image.size.height > 0.0 {
|
||||
let aspectRatio = image.size.width / image.size.height
|
||||
let pillHeight = 20.0
|
||||
let offset = 0.5 * (font.capHeight - pillHeight)
|
||||
|
||||
let attachment = NSTextAttachment()
|
||||
attachment.image = image
|
||||
attachment.bounds = CGRect(x: 0, y: offset, width: pillHeight * aspectRatio, height: pillHeight)
|
||||
attributedString.append(NSAttributedString(attachment: attachment))
|
||||
}
|
||||
|
||||
return attributedString
|
||||
}
|
||||
|
||||
private func updateBadgeImageViewPosition(isPresenceDisplayed: Bool) {
|
||||
guard badgeImageView.image != nil else {
|
||||
badgeImageView.isHidden = true
|
||||
|
||||
Reference in New Issue
Block a user