MESSENGER-5223 add federation pill in timeline

This commit is contained in:
JanNiklas Grabowski
2024-01-17 13:51:30 +01:00
parent 99e51e0a7a
commit 0df2b02918
3 changed files with 54 additions and 4 deletions
@@ -38,6 +38,7 @@ final class RoomCellContentView: UIView, NibLoadable {
@IBOutlet weak var avatarContainerView: UIView!
@IBOutlet weak var avatarImageView: MXKImageView!
private var pillImageView: UIImageView? // BWI: #5223 add federation icon in timeline
@IBOutlet weak var innerContentView: UIView!
@@ -173,12 +174,47 @@ final class RoomCellContentView: UIView, NibLoadable {
}
}
// BWI: #5223 add federation icon in timeline
var showFederationPill: Bool {
get {
if let pillImageView = self.pillImageView {
return !pillImageView.isHidden
} else {
return false
}
}
set {
self.pillImageView?.isHidden = !newValue
}
}
var decorationViewsAlignment: RoomCellDecorationAlignment = .left
// MARK: - Setup
class func instantiate() -> RoomCellContentView {
return RoomCellContentView.loadFromNib()
let roomCell = RoomCellContentView.loadFromNib()
// BWI: #5223 add federation icon in timeline
roomCell.addFederationPill()
return roomCell
}
// BWI: #5223 add federation icon in timeline
func addFederationPill() {
// bwi: 5216 - federation
if BWIBuildSettings.shared.isFederationEnabled {
// add imageview for the pill if it doesn't exist
if pillImageView == nil {
let imageView = FederationIconHelper.shared.getFederatedIconImageView(avatarFrame: avatarImageView.frame)
pillImageView = imageView
pillImageView?.contentMode = .scaleAspectFit
avatarContainerView.addSubview(imageView)
}
pillImageView?.image = FederationIconHelper.shared.federationBadgeImage()
} else {
pillImageView?.image = nil
}
}
// MARK: - Public
@@ -187,6 +223,13 @@ final class RoomCellContentView: UIView, NibLoadable {
self.backgroundColor = theme.backgroundColor
self.paginationLabel.textColor = theme.tintColor
self.paginationSeparatorView.backgroundColor = theme.tintColor
// BWI: #5223 add federation icon in timeline
if BWIBuildSettings.shared.isFederationEnabled {
pillImageView?.image = FederationIconHelper.shared.federationBadgeImage()
} else {
pillImageView?.image = nil
}
}
}