@@ -79,6 +79,12 @@ final class MessagesViewController: RocketChatViewController {
7979 }
8080 }
8181
82+ lazy var announcementBannerView : UIView = {
83+ let announcementBannerView = ChatAnnouncementView ( )
84+ announcementBannerView. subscription = subscription? . unmanaged
85+ return announcementBannerView
86+ } ( )
87+
8288 private let buttonScrollToBottomSize = CGFloat ( 70 )
8389 var keyboardHeight : CGFloat = 0
8490 var buttonScrollToBottomConstraint : NSLayoutConstraint !
@@ -131,7 +137,7 @@ final class MessagesViewController: RocketChatViewController {
131137
132138 registerCells ( )
133139 setupScrollToBottom ( )
134-
140+ setupAnnouncementBanner ( )
135141 NotificationCenter . default. addObserver (
136142 self ,
137143 selector: #selector( keyboardWillShow ( _: ) ) ,
@@ -197,6 +203,7 @@ final class MessagesViewController: RocketChatViewController {
197203 super. viewDidAppear ( animated)
198204 markAsRead ( )
199205 becomeFirstResponder ( )
206+ updateAnnouncementBanner ( )
200207 }
201208
202209 override func viewWillTransition( to size: CGSize , with coordinator: UIViewControllerTransitionCoordinator ) {
@@ -274,6 +281,35 @@ final class MessagesViewController: RocketChatViewController {
274281 }
275282 }
276283
284+ // MARK: Announcement
285+
286+ func setupAnnouncementBanner( ) {
287+ // Start as invisible first, alpha will be set to 1 if a valid announcement is fetched
288+ announcementBannerView. alpha = 0
289+
290+ view. addSubview ( announcementBannerView)
291+ view. bringSubviewToFront ( announcementBannerView)
292+ NSLayoutConstraint . activate ( [
293+ announcementBannerView. topAnchor. constraint ( equalTo: view. topAnchor) ,
294+ announcementBannerView. leftAnchor. constraint ( equalTo: view. leftAnchor) ,
295+ announcementBannerView. rightAnchor. constraint ( equalTo: view. rightAnchor) ,
296+ announcementBannerView. heightAnchor. constraint ( equalToConstant: 50 )
297+ ] )
298+
299+ announcementBannerView. applyTheme ( )
300+ }
301+
302+ func updateAnnouncementBanner( ) {
303+ guard let announcement = subscription? . unmanaged? . roomAnnouncement else { return }
304+ let hasAnnouncement = announcement == " " ? false : true
305+
306+ if hasAnnouncement {
307+ announcementBannerView. alpha = 1
308+ } else {
309+ announcementBannerView. alpha = 0
310+ }
311+ }
312+
277313 // MARK: Scroll to Bottom
278314
279315 func setupScrollToBottom( ) {
0 commit comments