The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
### 4.1.0 (May 20, 2021)
#### Features
- Dynamic content insets for compond bubble #685 by [@magic146](https://github.com/magic146)
- Added support for Swift Package Manager #690 by [@NicholasMata](https://github.com/NicholasMata)
- Add double tap handler #692 by [@AKoulabukhov](https://github.com/AKoulabukhov)
- Add support of failed loading icon to compound bubble #695 by [@azatZul](https://github.com/azatZul)
- Added camera type to callback when a photo is taken #696 by [@KaneCheshire](https://github.com/KaneCheshire)
- Introduce custom live camera cell behaviour #698 by [@magic146](https://github.com/magic146)
- Custom input camera picker #699 by [@magic146](https://github.com/magic146)
- Make timestamp revealing optional #704 by [@simoneBumble](https://github.com/simoneBumble)
- Handle live camera and photo cells taps #705 by [@magic146](https://github.com/magic146)
#### Improvements
- Contribution guide #676 by [@wiruzx](https://github.com/wiruzx)
- Enabling library evolution support #677 by [@dive](https://github.com/dive)
- Add github actions #678 by [@wiruzx](https://github.com/wiruzx)
- Make presenter public to fire send #701 by [@ChaosCoder](https://github.com/ChaosCoder)
- Replace presentingController with presentingViewControllerProvider #703 by [@magic146](https://github.com/magic146)
#### Bugfixes
- Fix false positive test runs #680 by [@wiruzx](https://github.com/wiruzx)
- Add empty scroll view delegate methods #684 by [@wiruzx](https://github.com/wiruzx)
- Fix resource name collision #686 by [@khramtsoff](https://github.com/khramtsoff)
- Fix the resources bundle signing #697 by [@azatZul](https://github.com/azatZul)
### 4.0.0 (September 20, 2020)
#### Features
- Swipe to reply #672 by [@wiruzx](https://github.com/wiruzx)
- Ability to highlight message when scrolling to it #670 by [@wiruzx](https://github.com/wiruzx)
- Add ability to show decoration views on compound bubble #657 by [@wiruzx](https://github.com/wiruzx)
#### Improvements
- Update of compound views #666 by [@wiruzx](https://github.com/wiruzx)
- BaseMessageInteractionHandlerProtocol methods are extended with a message parameter #665 by [@magic146](https://github.com/magic146)
- Fix project warnings, migrate to Xcode 11 #662 by [@petrpavlik](https://github.com/petrpavlik)
- Add safe area insets for decoration views #660 by [@wiruzx](https://github.com/wiruzx)
- Bump xcode version in travis config #661 by [@wiruzx](https://github.com/wiruzx)
- Compound bubble styling simplification #653 by [@magic146](https://github.com/magic146)
- Add removing random item to demo project #652 by [@wiruzx](https://github.com/wiruzx)
- Fix autolayout support for BaseMessageCollrctionViewCell #651 by [@wiruzx](https://github.com/wiruzx)
- Determine UI orientation without shared UIApplication object #637 by [@FabioTacke](https://github.com/FabioTacke)
- Safe area support for BaseChatViewController #632 by [@esilverberg](https://github.com/esilverberg)
#### Bugfixes
- iOS 14: Fix infinite layout loop when chat is empty #674 by [@nalexn](https://github.com/nalexn)
- Fix image stretching #673 by [@wiruzx](https://github.com/wiruzx)
- Do not restart camera capture when camera picker is presented #671 by [@leonspok](https://github.com/leonspok)
- Set frame with disabled animation #659 by [@wiruzx](https://github.com/wiruzx)
- Fix typo in CGSize extension #655 by [@95krasovsky](https://github.com/95krasovsky)
- Fix crash, if BaseChatViewController destroyed too early #549 by [@freedbrt](https://github.com/freedbrt)
- Fix masking in iOS 14 #667 by [@esilverberg](https://github.com/esilverberg)
#### Features
- Multiline placeholder support #640 by [@Ssimboss](https://github.com/Ssimboss)
#### Improvements
- Add explicit dependency on Chatto #646 by [@wiruzx](https://github.com/wiruzx)
- Allow to specify orientation in default keyboard height #630 by [@leonspok](https://github.com/leonspok)
- Improve scroll performance #629 by [@AntonPalich](https://github.com/AntonPalich)
- Disable BUILD_LIBRARY_FOR_DISTRIBUTION option #626 by [@dive](https://github.com/dive)
- Enable module stability support #625 by [@dive](https://github.com/dive)
- Open avatar for customization #624 by [@wiruzx](https://github.com/wiruzx)
- Fix product name #622 by [@wiruzx](https://github.com/wiruzx)
- Fix imports #612 by [@wiruzx](https://github.com/wiruzx)
#### Bugfixes
- Fix crash on termination #648 by [@dive](https://github.com/dive)
- Made overridden inputAccessoryView read-write #644 by [@azatZul](https://github.com/azatZul)
- Fix jumping with long text in text input #642 by [@leonspok](https://github.com/leonspok)
- Fix wrong scroll indicator insets on iOS 13 #627 by [@AntonPalich](https://github.com/AntonPalich)
- Fix scrolled position after frame change #623 by [@leonspok](https://github.com/leonspok)
- Fix input bar position #620 by [@magic146](https://github.com/magic146)
#### Features
- Support of using compound bubble for text messages #578 by [@magic146](https://github.com/magic146)
- Support of custom menu presentation #584 by [@AntonPalich](https://github.com/AntonPalich)
- Support of layout invalidation for compound bubble #586 by [@Wisors](https://github.com/Wisors)
#### Improvements
- Added accessibility identifier to text bubble #575 by [@wiruzx](https://github.com/wiruzx)
- Migrated existing objc classes to Swift #579 by [@magic146](https://github.com/magic146)
- Various compound bubble layout improvements #587 by [@turbulem](https://github.com/turbulem)
- Added support for draft messages #580 by [@aabalaban](https://github.com/aabalaban)
- Added `didLoseFocusOnItem` method to `ChatInputBarDelegate` #591 by [@magic146](https://github.com/magic146)
- Improved cursor positioning #595 by [@leonspok](https://github.com/leonspok)
- Added support of presenters reusing #596 by [@magic146](https://github.com/magic146)
- Added support for updating message in content presenters #605 by [@wiruzx](https://github.com/wiruzx)
#### Bugfixes
- Fixed using correct uid for decorated item #570 by [@magic146](https://github.com/magic146)
- Fixed filtering content factories #588 by [@Wisors](https://github.com/Wisors)
- Fixed issue with wrong text size calculation in compound bubble #589 by [@AntonPalich](https://github.com/AntonPalich)
- Replaced ReadOnlyOrderedDictionary with ChatItemCompanionCollection in order to support correct uids #590 by [@magic146](https://github.com/magic146)
- Fixed updating `ExpandableTextView` bounds in iOS 13 #592 by [@magic146](https://github.com/magic146)
- Fixed blurry images in the photo picker #594 by [@magic146](https://github.com/magic146)
- Limited maximum scale of preview photos #597 by [@magic146](https://github.com/magic146)
- Fixed calling completion in `changeInputContentBottomMarginTo` method #599 by [@leonspok](https://github.com/leonspok)
- Fixed openning a link in a message #600 by [@magic146](https://github.com/magic146)
- Fixed out of bounds crash due to stirng encoding #603 by [@turbulem](https://github.com/turbulem)
- Fixed implicitly animating layout #604 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed issues with non-selectable links in iOS 13 #606 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed simultaniously recognizing tap and long press #608 by [@AntonPalich](https://github.com/AntonPalich)
#### Features
- Added Xcode 10 and Swift 4.2 support #521 by [@AntonPalich](https://github.com/AntonPalich)
- Added support for showing messages starting from the bottom of the chat #483 by [@rokemoon](https://github.com/rokemoon)
- Added support for scrolling to a specific item in chat #542 by [@AntonPalich](https://github.com/AntonPalich)
- Added accessibility identifiers to messages, photos input and input bar #517 by [@dive](https://github.com/dive)
- Added support for an experimental input presenter that don't use `UIResponder.inputView` API to present a custom input views #536 by [@aabalaban](https://github.com/aabalaban) and [@magic146](https://github.com/magic146)
- Added support for a compound bubble that shows a mixed content in a single bubble #545 by [@wiruzx](https://github.com/wiruzx)
- Added accessibility identifiers to a compound bubble #556 by [@wiruzx](https://github.com/wiruzx)
- Added ability to change an item type dynamically #548 by [@wiruzx](https://github.com/wiruzx)
- Added support for intercepting paste action in input bar #558 and #560 by [@wiruzx](https://github.com/wiruzx)
- Added support for copy action in compound bubble #573 by [@wiruzx](https://github.com/wiruzx)
#### Improvements
- Changed access modifier to `open` in `scrollToBottom` function #501 by [@azimin](https://github.com/azimin)
- Added `@objc` modifier to `scrollToBottom` function #502 by [@azimin](https://github.com/azimin)
- Added support for postponing a presenter factory initialization #528 by [@magic146](https://github.com/magic146)
- Added `IDETemplateMacros` to workspaces #544 by [@wiruzx](https://github.com/wiruzx)
- Changed some access modifiers to `public` in `ScreenMetric.swift` and `InputContainerView` #551 by [@magic146](https://github.com/magic146)
- Various improvements to support a new input bar in Badoo #552 by [@magic146](https://github.com/magic146)
#### Bug
- Fixed an issue with wrong `inputAccessoryView` position on iOS 12 #530 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed an issue (introduced in #530) with wrong `inputView` height after dismissing a modally presented view controller #531 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed an issue (introduced in #530) with wrong `inputView` height after sending a multilin text message #568 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed an issue (introduced in #542) with double completion execution in performBatchUpdates #543 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed an issue (introduced in #545) with fractional bubble size #553 by [@wiruzx](https://github.com/wiruzx)
- Fixed a crash caused by force unwrapped optional in case when a device was rotated with unopened tab with chat in `UITabBarViewController` #538 by [@alaija](https://github.com/alaija)
- Fixed a freeze caused by `PHCachingImageManager` in some cases #566 by [@leonspok](https://github.com/leonspok)
#### Bugs
- Fix iOS 11 text rendering issue related to carriage return symbol #364 by [@0xpablo](https://github.com/0xpablo)
#### Features
- Added Swift 4 support #385 by [@AntonPalich](https://github.com/AntonPalich) and #345 by [@jpunz](https://github.com/jpunz)
- Added messages selection #411 by [@AntonPalich](https://github.com/AntonPalich)
- Added accessibility identifier to selection indicator #428 by [@AntonPalich](https://github.com/AntonPalich)
- Added iCloud Library support to photos input #415 by [@Wisors](https://github.com/Wisors)
- Added camera position settings for live camera cell #393 by [@Wisors](https://github.com/Wisors)
- Allow client to set selected range of textView in ChatInputBar #402 by [@phatmann](https://github.com/phatmann)
- Allow override of text message `text` #403 by [@phatmann](https://github.com/phatmann)
- Added ability to change input bar placeholder #396 by [@chupakabr](https://github.com/chupakabr)
- Allow to build TextMessagePresenter subclasses without exposing internal properties #421 by [@AntonPalich](https://github.com/AntonPalich)
- Made UIScrollView delegates open in BaseChatViewController #438 by [@azimin](https://github.com/azimin)
- Exposed keyboard position handling #445 by [@chupakabr](https://github.com/chupakabr)
- Added additional state for keyboard tracker and ability to modify content insets #454 by [@azimin](https://github.com/azimin)
- Removed Xcode 9 warnings #439 by [@irace](https://github.com/irace)
#### Bugs
- Fixed crashes that happened under some conditions in project with Swift 4 that used Chatto with Swift 3.2 #405, #414 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed issue with live camera cell when it wasnt updated after updating its appearance #404 by [@Wisors](https://github.com/Wisors)
- Fixed issue with photo picker after migration to Swift 4 #437 by [@AntonPalich](https://github.com/AntonPalich)
- Fixed crash that happened on devices with unaccessible camera caused by forced unwrapped optional #424 by [@Wisors](https://github.com/Wisors)
- Removed gap under input bar on iPhone X #447 by [@azimin](https://github.com/azimin)
- Fixed issue with wrong input bar position when hidesBottomBarWhenPushed is true on iPhone X #457 by [@AntonPalich](https://github.com/AntonPalich)
### Features:
- Added support for custom main view in BaseChatViewController #323 by @serge-star
- Added ability to change input bar border color and width #339 by @NSEGeorge
- Added ability to control visibility of failed icon #359 by @turbulem
- Added Xcode 9 and iOS 11 support #352 by @AntonPalich
- Added support for swiftlint 0.23 #371 by @AntonPalich
### Bugs:
- Fixed crash caused by missing optionality identifier in UIKit #310 by @raisaanjani92
- Fixed input container position when presenting chat as child controller #338 by @KaterinaPetrova
- Fixed issue with gesture recognizers that wasn't disabled for text messages on iOS 11 #366 by @AntonPalich
* swiftlint 0.13 support & Xcode 8.2 compatibility [#253](https://github.com/badoo/Chatto/pull/253) - [@diegosanchezr](https://github.com/diegosanchezr)
* swiftlint 0.14 support & hashes improvements [#271](https://github.com/badoo/Chatto/pull/271) - [@diegosanchezr](https://github.com/diegosanchezr)
* Removed lazy keyword from accessoryTimestampView property in BaseMessageCollectionViewCell [#286](https://github.com/badoo/Chatto/pull/286) - [@geegaset](https://github.com/geegaset)
* Fixed typo in a comment in BaseChatViewController+Changes.swift [#296](https://github.com/badoo/Chatto/pull/296) - [@NickAger](https://github.com/NickAger)
* BasicChatInputBarPresenter.chatInputBar became public [#297](https://github.com/badoo/Chatto/pull/297) - [@NickAger](https://github.com/NickAger)
* Added ability to specify tint color for text input [#301](https://github.com/badoo/Chatto/pull/301) - [@V0idPRO](https://github.com/V0idPRO)
* Xcode 8.3 compatibility [#300](https://github.com/badoo/Chatto/pull/300) - [@geegaset](https://github.com/geegaset)
* Empty layout model is returned if layout delegate is nil [#304](https://github.com/badoo/Chatto/pull/304) - [@chupakabr](https://github.com/chupakabr)
- Swift 3.0.1 / Xcode 8.1 support [#233](https://github.com/badoo/Chatto/pull/233) - [@diegosanchezr](https://github.com/diegosanchezr)
- Fixes weird linker issue with Carthage [#232](https://github.com/badoo/Chatto/pull/232) - [@zwang](https://github.com/zwang)
- Avoids using AVCapture in simulator [#235](https://github.com/badoo/Chatto/pull/235) - [@geegaset](https://github.com/geegaset)
- Avoids crashing when receiving a nil indexPath (WebDriverAgent) [#248](https://github.com/badoo/Chatto/pull/248) - [@diegosanchezr](https://github.com/diegosanchezr)