Pill size adjustment

This commit is contained in:
Arnfried Griesert
2023-11-14 06:40:31 +01:00
parent 55084fd91a
commit 03312447ce
@@ -63,6 +63,8 @@ class RoomInfoBasicView: UIView {
@IBOutlet private weak var securityTitleLabel: UILabel!
@IBOutlet private weak var securityInformationLabel: UILabel!
private var pillImageView: UIImageView?
/// Block to be invoked when topic text view changes its content size.
var onTopicSizeChange: ((RoomInfoBasicView) -> Void)?
@@ -108,14 +110,32 @@ class RoomInfoBasicView: UIView {
// bwi: 5216 - federation
if BWIBuildSettings.shared.isFederationEnabled && viewData.isFederated {
badgeImageView.image = federationBadgeImage()
// add imageview for the pill if it doesn't exist
if pillImageView == nil {
// because of svg we use fixed values here for the raw image size
let pillImageWidth: CGFloat = 23.0
let pillImageHeight: CGFloat = 18.0
let pillBorderSize: CGFloat = 2.57
let avatarSize = avatarImageView.frame.size.height
let pillHeight: CGFloat = avatarSize * 0.34 // 34% relative size by design rule
let pillWidth: CGFloat = pillHeight / pillImageHeight * pillImageWidth
let scaledBorderSize: CGFloat = pillBorderSize * pillHeight / pillImageHeight
let frame = CGRect(x: avatarImageView.frame.origin.x + avatarSize - pillWidth + scaledBorderSize, y: avatarImageView.frame.origin.y + avatarSize - pillHeight, width: pillWidth, height: pillHeight)
let imageView = UIImageView(frame: frame)
pillImageView = imageView
pillImageView?.contentMode = .scaleAspectFit
avatarContainerView.addSubview(imageView)
}
pillImageView?.image = federationBadgeImage()
roomNameLabel.numberOfLines = 2
roomNameLabel.attributedText = roomNameWithFederationPill(roomDisplayName: viewData.roomDisplayName, font: roomNameLabel.font)
} else {
badgeImageView.image = viewData.encryptionImage
roomNameLabel.text = viewData.roomDisplayName
}
badgeImageView.image = nil
roomAddressLabel.text = viewData.mainRoomAlias
roomAddressLabel.isHidden = roomAddressLabel.text?.isEmpty ?? true
roomTopicTextView.text = viewData.roomTopic
@@ -161,7 +181,7 @@ class RoomInfoBasicView: UIView {
// 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 pillHeight: CGFloat = 24.0
let offset = 0.5 * (font.capHeight - pillHeight)
let attachment = NSTextAttachment()