         updateMessagesQueryNotificationBlock()
         loadMoreMessagesFrom(date: nil)
         subscribe(for: subscription)
-    }
-
-    func registerTypingEvent(_ subscription: Subscription) {
-        // TODO: Replace
-//        typingIndicatorView?.interval = 0
-        guard let user = AuthManager.currentUser() else { return Log.debug("Could not register TypingEvent") }
-
-        let loggedUsername = user.username
-        SubscriptionManager.subscribeTypingEvent(subscription) { [weak self] username, flag in
-            guard let username = username, username != loggedUsername else { return }
-
-            DispatchQueue.main.async {
-                let isAtBottom = self?.chatLogIsAtBottom()
-
-                // TODO: Replace
-                if flag {
-//                    self?.typingIndicatorView?.insertUsername(username)
-                } else {
-//                    self?.typingIndicatorView?.removeUsername(username)
-                }
-
-                if let isAtBottom = isAtBottom,
-                    isAtBottom == true {
-                    self?.scrollToBottom(true)
-                }
-            }
-        }
     }
 
     private func updateMessagesQueryNotificationBlock() {

        API.current()?.client(SubscriptionsClient.self).markAsRead(subscription: subscription)
    }

    internal func subscribe(for subscription: Subscription) {
        MessageManager.changes(subscription)
        MessageManager.subscribeDeleteMessage(subscription)
        registerTypingEvent(subscription)
    }

    internal func unsubscribe(for subscription: Subscription) {
        SocketManager.unsubscribe(eventName: subscription.rid)
        SocketManager.unsubscribe(eventName: "\(subscription.rid)/typing")
        SocketManager.unsubscribe(eventName: "\(subscription.rid)/deleteMessage")
    }

    internal func updateEmptyState() {
        if self.subscription == nil {
            title = ""

        dataController.invalidateLayout(for: nil)
        collectionView.setNeedsLayout()
        collectionView.reloadData()
    }

    override func viewWillLayoutSubviews() {
