Skip to content

Commit

Permalink
Revert "Preserve height of ChatInputItem if keyboard item was previou…
Browse files Browse the repository at this point in the history
…sly opened. (#170)" (#172)

This reverts commit b2fcf7b.
  • Loading branch information
ikashkuta authored Jul 4, 2016
1 parent b2fcf7b commit 600da97
Showing 1 changed file with 2 additions and 48 deletions.
50 changes: 2 additions & 48 deletions ChattoAdditions/Source/Input/ChatInputBarPresenter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,28 +35,15 @@ protocol ChatInputBarPresenter: class {
@objc public class BasicChatInputBarPresenter: NSObject, ChatInputBarPresenter {
let chatInputBar: ChatInputBar
let chatInputItems: [ChatInputItemProtocol]
let notificationCenter: NSNotificationCenter

public init(chatInputBar: ChatInputBar,
chatInputItems: [ChatInputItemProtocol],
chatInputBarAppearance: ChatInputBarAppearance,
notificationCenter: NSNotificationCenter = NSNotificationCenter.defaultCenter()) {
public init(chatInputBar: ChatInputBar, chatInputItems: [ChatInputItemProtocol], chatInputBarAppearance: ChatInputBarAppearance) {
self.chatInputBar = chatInputBar
self.chatInputItems = chatInputItems
self.chatInputBar.setAppearance(chatInputBarAppearance)
self.notificationCenter = notificationCenter
super.init()

self.chatInputBar.presenter = self
self.chatInputBar.inputItems = self.chatInputItems
self.notificationCenter.addObserver(self,
selector: #selector(BasicChatInputBarPresenter.keyboardDidChangeFrame),
name: UIKeyboardDidChangeFrameNotification,
object: nil)
}

deinit {
self.notificationCenter.removeObserver(self)
}

private(set) var focusedItem: ChatInputItemProtocol? {
Expand All @@ -70,9 +57,7 @@ protocol ChatInputBarPresenter: class {

private func updateFirstResponderWithInputItem(inputItem: ChatInputItemProtocol) {
let responder = self.chatInputBar.textView
let inputView = inputItem.inputView
self.setHeight(forInputView: inputView)
responder.inputView = inputView
responder.inputView = inputItem.inputView
if responder.isFirstResponder() {
responder.reloadInputViews()
} else {
Expand All @@ -90,37 +75,6 @@ protocol ChatInputBarPresenter: class {
}
return firstKeyboardInputItem
}

private func setHeight(forInputView inputView: UIView?) {
guard let inputView = inputView else { return }

var mask = inputView.autoresizingMask
mask.remove(.FlexibleHeight)
inputView.autoresizingMask = mask

if let heightConstraint = inputView.constraints.filter({ $0.firstAttribute == .Height }).first {
heightConstraint.constant = self.inputViewHeight
} else {
inputView.frame.size.height = self.inputViewHeight
}
}

private var lastKnownKeyboardHeight: CGFloat?
private let defaultKeyboardHeight: CGFloat = 216
private var inputViewHeight: CGFloat {
let accessoryViewHeight = self.chatInputBar.textView.inputAccessoryView?.bounds.height ?? 0
if let lastKnownKeyboardHeight = self.lastKnownKeyboardHeight {
return lastKnownKeyboardHeight - accessoryViewHeight
} else {
return self.defaultKeyboardHeight
}
}

@objc
private func keyboardDidChangeFrame(notification: NSNotification) {
guard let value = notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue else { return }
self.lastKnownKeyboardHeight = value.CGRectValue().height
}
}

// MARK: ChatInputBarPresenter
Expand Down

0 comments on commit 600da97

Please sign in to comment.