         dataController.lastSeen = subscription?.lastSeen ?? Date()
     }
 
-    // MARK: Handeling Keyboard
-
-    weak var keyboardHC: NSLayoutConstraint?
-    weak var textInputbarHC: NSLayoutConstraint?
+    // MARK: Handling Keyboard
+
+    // keyboardHeightConstraint is the same as keyboardHC in SLKTextViewController
+    weak var keyboardHeightConstraint: NSLayoutConstraint?
+    weak var textInputbarBackgroundHeightConstraint: NSLayoutConstraint?
+
     weak var keyboardProxyView: UIView?
     let textInputbarBackground = UIToolbar()
     var oldTextInputbarBgIsTransparent = false

    // Enables for the interactive keyboard dismissal.
    // Gets called in scrollViewDidScroll and keyboardDidChangeFrame methods.
    private func updateKeyboardConstraints() {
        if keyboardHC == nil {
            keyboardHC = self.view.constraints.first {
                ($0.firstItem as? UIView) == self.view &&
                    ($0.secondItem as? SLKTextInputbar) == self.textInputbar
            }

            textInputbar.insertSubview(textInputbarBackground, at: 0)
            textInputbarBackground.translatesAutoresizingMaskIntoConstraints = false

            textInputbarBackgroundHeightConstraint = textInputbarBackground.heightAnchor.constraint(equalTo: textInputbar.heightAnchor, multiplier: 1, constant: view.safeAreaInsets.bottom)
            textInputbarBackgroundHeightConstraint?.isActive = true

            textInputbarBackground.widthAnchor.constraint(equalTo: textInputbar.widthAnchor).isActive = true
            textInputbarBackground.topAnchor.constraint(equalTo: textInputbar.topAnchor).isActive = true
