* Add Assets.xcassets to MessageKitAssets.bundle
* Replace incomingGray, outgoingGreen, inputBarGray
* Replace playButtonLightGray, with UIVisualEffectView to mimic iMessage (Fixes#1321 , Fixes#1335)
* Fixes an issue where the triangle in the play button is not centered
* remove sendButtonBlue, add incoming/outgoingAudioMessageTint
Matches audio tint more closely to iMessage by tinting white on outgoing and tinting blue on incoming
* Remove backgroundColor, add collectionViewBackground
* remove unused labelColor
* Remove unused placeholderTextColor
* Remove grayColor
* remove darkTextColor, add typingIndicatorDot
Matches dot color more closely to iMessage
* Remove unused lightGrayColor
* Adds high contrast appearances to the color assets
* Add MessageKitError string for case when color asset could not be loaded
Also removes redundant internal access level modifier on MessageKitError (internal is default), and changes MessageKitError from enum -> struct as its members were not enum cases
* Fix swiftlint issues
* Add label color asset and use in ContactMessageCell
* Fix tests
* Remove MessageInputBar files and change build settings
* Conditional imports to allow for builds without MessageInputBar
* Update Cardfile
* Specify Version in Cartfile for MessageInputBar
* Remove conditional imports in favor of Carthage for local development
* Additional `import MessageInputBar`
* Remove `MessageInputBar` from Cartfile.private
* Bump MessageInputBar version
* Add Cartfile
* Tweak build settings
* Specify import of MessageInputBar for Carthage
This change provides better handling of keyboard frames. It copes with different values of UIViewController.edgesForExtendedLayout, UIScrollView.contentInsetAdjumentBehavior, view controller containment scenarios and undocked keyboards, and uses cleaner code.
Improvements and fixes in this change:
1. Translates keyboard frame from screen coordinates into view controller coordinates. They aren’t the same thing when containment is involved, or edgesForExtendedLayout does not include .top.
2. Avoids special casing any iPhone models and avoids dealing with safeAreaInsets manually. In iOS 11, UIScrollView may behave differently depending on contentInsetAdjumentBehavior, and the old code incorrectly assumed that the mode is .always (while it is in fact is .automatic) and that no extra safe area insets have been introduced at the bottom edge. Best part, we don’t have to deal with any of this at all, we can offload the logic to UIScrollView itself by looking at the difference between adjustedContentInset and contentInset.
3. Handles view controller containment and undocked keyboards by taking into account an intersection of the scroll view frame and the keyboard’s frame. I think Apple demoes this in one of the WWDC videos, but I couldn’t find which one (or if I’m misremembering). Regardless, this technique makes sure we compute and use a sensible number.
There’s also a couple of extra renames that make the intention of the modified code clearer.