@@ -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,9 +137,8 @@ final class MessagesViewController: RocketChatViewController {
131137
132138 registerCells ( )
133139 setupScrollToBottom ( )
134-
135140 setupKeyboardNotifications ( )
136-
141+ setupAnnouncementBanner ( )
137142 setupSubscriptionViewModel ( )
138143 setupMessagesViewModel ( )
139144
@@ -154,6 +159,7 @@ final class MessagesViewController: RocketChatViewController {
154159 super. viewDidAppear ( animated)
155160 markAsRead ( )
156161 becomeFirstResponder ( )
162+ updateAnnouncementBanner ( )
157163 }
158164
159165 override func viewWillTransition( to size: CGSize , with coordinator: UIViewControllerTransitionCoordinator ) {
@@ -293,6 +299,35 @@ final class MessagesViewController: RocketChatViewController {
293299 }
294300 }
295301
302+ // MARK: Announcement
303+
304+ func setupAnnouncementBanner( ) {
305+ // Start as invisible first, alpha will be set to 1 if a valid announcement is fetched
306+ announcementBannerView. alpha = 0
307+
308+ view. addSubview ( announcementBannerView)
309+ view. bringSubviewToFront ( announcementBannerView)
310+ NSLayoutConstraint . activate ( [
311+ announcementBannerView. topAnchor. constraint ( equalTo: view. topAnchor) ,
312+ announcementBannerView. leftAnchor. constraint ( equalTo: view. leftAnchor) ,
313+ announcementBannerView. rightAnchor. constraint ( equalTo: view. rightAnchor) ,
314+ announcementBannerView. heightAnchor. constraint ( equalToConstant: 50 )
315+ ] )
316+
317+ announcementBannerView. applyTheme ( )
318+ }
319+
320+ func updateAnnouncementBanner( ) {
321+ guard let announcement = subscription? . unmanaged? . roomAnnouncement else { return }
322+ let hasAnnouncement = announcement == " " ? false : true
323+
324+ if hasAnnouncement {
325+ announcementBannerView. alpha = 1
326+ } else {
327+ announcementBannerView. alpha = 0
328+ }
329+ }
330+
296331 // MARK: Scroll to Bottom
297332
298333 func setupScrollToBottom( ) {
0 commit comments