Skip to content

Latest commit

 

History

History
296 lines (252 loc) · 26.5 KB

CHANGELOG.md

File metadata and controls

296 lines (252 loc) · 26.5 KB

4.1.0 (May 20, 2021)

Features

  • Dynamic content insets for compond bubble #685 by @magic146
  • Added support for Swift Package Manager #690 by @NicholasMata
  • Add double tap handler #692 by @AKoulabukhov
  • Add support of failed loading icon to compound bubble #695 by @azatZul
  • Added camera type to callback when a photo is taken #696 by @KaneCheshire
  • Introduce custom live camera cell behaviour #698 by @magic146
  • Custom input camera picker #699 by @magic146
  • Make timestamp revealing optional #704 by @simoneBumble
  • Handle live camera and photo cells taps #705 by @magic146

Improvements

  • Contribution guide #676 by @wiruzx
  • Enabling library evolution support #677 by @dive
  • Add github actions #678 by @wiruzx
  • Make presenter public to fire send #701 by @ChaosCoder
  • Replace presentingController with presentingViewControllerProvider #703 by @magic146

Bugfixes

  • Fix false positive test runs #680 by @wiruzx
  • Add empty scroll view delegate methods #684 by @wiruzx
  • Fix resource name collision #686 by @khramtsoff
  • Fix the resources bundle signing #697 by @azatZul

4.0.0 (September 20, 2020)

Features

  • Swipe to reply #672 by @wiruzx
  • Ability to highlight message when scrolling to it #670 by @wiruzx
  • Add ability to show decoration views on compound bubble #657 by @wiruzx

Improvements

  • Update of compound views #666 by @wiruzx
  • BaseMessageInteractionHandlerProtocol methods are extended with a message parameter #665 by @magic146
  • Fix project warnings, migrate to Xcode 11 #662 by @petrpavlik
  • Add safe area insets for decoration views #660 by @wiruzx
  • Bump xcode version in travis config #661 by @wiruzx
  • Compound bubble styling simplification #653 by @magic146
  • Add removing random item to demo project #652 by @wiruzx
  • Fix autolayout support for BaseMessageCollrctionViewCell #651 by @wiruzx
  • Determine UI orientation without shared UIApplication object #637 by @FabioTacke
  • Safe area support for BaseChatViewController #632 by @esilverberg

Bugfixes

  • iOS 14: Fix infinite layout loop when chat is empty #674 by @nalexn
  • Fix image stretching #673 by @wiruzx
  • Do not restart camera capture when camera picker is presented #671 by @leonspok
  • Set frame with disabled animation #659 by @wiruzx
  • Fix typo in CGSize extension #655 by @95krasovsky
  • Fix crash, if BaseChatViewController destroyed too early #549 by @freedbrt
  • Fix masking in iOS 14 #667 by @esilverberg

3.6.0 (April 24, 2020)

Features

  • Multiline placeholder support #640 by @Ssimboss

Improvements

  • Add explicit dependency on Chatto #646 by @wiruzx
  • Allow to specify orientation in default keyboard height #630 by @leonspok
  • Improve scroll performance #629 by @AntonPalich
  • Disable BUILD_LIBRARY_FOR_DISTRIBUTION option #626 by @dive
  • Enable module stability support #625 by @dive
  • Open avatar for customization #624 by @wiruzx
  • Fix product name #622 by @wiruzx
  • Fix imports #612 by @wiruzx

Bugfixes

  • Fix crash on termination #648 by @dive
  • Made overridden inputAccessoryView read-write #644 by @azatZul
  • Fix jumping with long text in text input #642 by @leonspok
  • Fix wrong scroll indicator insets on iOS 13 #627 by @AntonPalich
  • Fix scrolled position after frame change #623 by @leonspok
  • Fix input bar position #620 by @magic146

3.5.0 (September 12, 2019)

Features

  • Support of using compound bubble for text messages #578 by @magic146
  • Support of custom menu presentation #584 by @AntonPalich
  • Support of layout invalidation for compound bubble #586 by @Wisors

Improvements

  • Added accessibility identifier to text bubble #575 by @wiruzx
  • Migrated existing objc classes to Swift #579 by @magic146
  • Various compound bubble layout improvements #587 by @turbulem
  • Added support for draft messages #580 by @aabalaban
  • Added didLoseFocusOnItem method to ChatInputBarDelegate #591 by @magic146
  • Improved cursor positioning #595 by @leonspok
  • Added support of presenters reusing #596 by @magic146
  • Added support for updating message in content presenters #605 by @wiruzx

Bugfixes

  • Fixed using correct uid for decorated item #570 by @magic146
  • Fixed filtering content factories #588 by @Wisors
  • Fixed issue with wrong text size calculation in compound bubble #589 by @AntonPalich
  • Replaced ReadOnlyOrderedDictionary with ChatItemCompanionCollection in order to support correct uids #590 by @magic146
  • Fixed updating ExpandableTextView bounds in iOS 13 #592 by @magic146
  • Fixed blurry images in the photo picker #594 by @magic146
  • Limited maximum scale of preview photos #597 by @magic146
  • Fixed calling completion in changeInputContentBottomMarginTo method #599 by @leonspok
  • Fixed openning a link in a message #600 by @magic146
  • Fixed out of bounds crash due to stirng encoding #603 by @turbulem
  • Fixed implicitly animating layout #604 by @AntonPalich
  • Fixed issues with non-selectable links in iOS 13 #606 by @AntonPalich
  • Fixed simultaniously recognizing tap and long press #608 by @AntonPalich

3.4.0 (April 23, 2019)

Features

  • Added Xcode 10 and Swift 4.2 support #521 by @AntonPalich
  • Added support for showing messages starting from the bottom of the chat #483 by @rokemoon
  • Added support for scrolling to a specific item in chat #542 by @AntonPalich
  • Added accessibility identifiers to messages, photos input and input bar #517 by @dive
  • Added support for an experimental input presenter that don't use UIResponder.inputView API to present a custom input views #536 by @aabalaban and @magic146
  • Added support for a compound bubble that shows a mixed content in a single bubble #545 by @wiruzx
  • Added accessibility identifiers to a compound bubble #556 by @wiruzx
  • Added ability to change an item type dynamically #548 by @wiruzx
  • Added support for intercepting paste action in input bar #558 and #560 by @wiruzx
  • Added support for copy action in compound bubble #573 by @wiruzx

Improvements

  • Changed access modifier to open in scrollToBottom function #501 by @azimin
  • Added @objc modifier to scrollToBottom function #502 by @azimin
  • Added support for postponing a presenter factory initialization #528 by @magic146
  • Added IDETemplateMacros to workspaces #544 by @wiruzx
  • Changed some access modifiers to public in ScreenMetric.swift and InputContainerView #551 by @magic146
  • Various improvements to support a new input bar in Badoo #552 by @magic146

Bug

  • Fixed an issue with wrong inputAccessoryView position on iOS 12 #530 by @AntonPalich
  • Fixed an issue (introduced in #530) with wrong inputView height after dismissing a modally presented view controller #531 by @AntonPalich
  • Fixed an issue (introduced in #530) with wrong inputView height after sending a multilin text message #568 by @AntonPalich
  • Fixed an issue (introduced in #542) with double completion execution in performBatchUpdates #543 by @AntonPalich
  • Fixed an issue (introduced in #545) with fractional bubble size #553 by @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
  • Fixed a freeze caused by PHCachingImageManager in some cases #566 by @leonspok

3.3.1 (April 9, 2018)

Bugs

  • Fix iOS 11 text rendering issue related to carriage return symbol #364 by @0xpablo

3.3.0 (March 10, 2018)

Features

  • Added Swift 4 support #385 by @AntonPalich and #345 by @jpunz
  • Added messages selection #411 by @AntonPalich
  • Added accessibility identifier to selection indicator #428 by @AntonPalich
  • Added iCloud Library support to photos input #415 by @Wisors
  • Added camera position settings for live camera cell #393 by @Wisors
  • Allow client to set selected range of textView in ChatInputBar #402 by @phatmann
  • Allow override of text message text #403 by @phatmann
  • Added ability to change input bar placeholder #396 by @chupakabr
  • Allow to build TextMessagePresenter subclasses without exposing internal properties #421 by @AntonPalich
  • Made UIScrollView delegates open in BaseChatViewController #438 by @azimin
  • Exposed keyboard position handling #445 by @chupakabr
  • Added additional state for keyboard tracker and ability to modify content insets #454 by @azimin
  • Removed Xcode 9 warnings #439 by @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
  • Fixed issue with live camera cell when it wasnt updated after updating its appearance #404 by @Wisors
  • Fixed issue with photo picker after migration to Swift 4 #437 by @AntonPalich
  • Fixed crash that happened on devices with unaccessible camera caused by forced unwrapped optional #424 by @Wisors
  • Removed gap under input bar on iPhone X #447 by @azimin
  • Fixed issue with wrong input bar position when hidesBottomBarWhenPushed is true on iPhone X #457 by @AntonPalich

3.2.0 (October 20, 2017)

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

3.1.0 (May 29, 2017)

  • swiftlint 0.13 support & Xcode 8.2 compatibility #253 - @diegosanchezr
  • swiftlint 0.14 support & hashes improvements #271 - @diegosanchezr
  • Removed lazy keyword from accessoryTimestampView property in BaseMessageCollectionViewCell #286 - @geegaset
  • Fixed typo in a comment in BaseChatViewController+Changes.swift #296 - @NickAger
  • BasicChatInputBarPresenter.chatInputBar became public #297 - @NickAger
  • Added ability to specify tint color for text input #301 - @V0idPRO
  • Xcode 8.3 compatibility #300 - @geegaset
  • Empty layout model is returned if layout delegate is nil #304 - @chupakabr

3.0.1 (Nov 14, 2016)

3.0 (Sept 21, 2016)

2.1 (Sept 17, 2016)

2.0 (Aug 8, 2016)

  • Renames ChatViewController to BaseChatViewController. #31 - @diegosanchezr
  • Makes presenters easier to reuse by relaxing generic constraints #35 - @diegosanchezr
  • Fixes issues when the dataSource updates with a different instance for a previously existing chatItem. #36 - @diegosanchezr
  • BaseChatViewController exposes chatItemCompanionCollection. #39 - @diegosanchezr
    • This gives access to the presenter and decorationAttributes of a chatItem.
  • ChatDataSourceDelegateProtocol gets chatDataSourceDidUpdate(:context). #39 - @diegosanchezr
    • This allows to customize the update of the UICollectionView (reloadData vs performBatchUpdates)
  • MessageViewModelProtocol loses status setter. messageModel property is removed. #44 - @diegosanchezr
  • ChatDataSourceProtocol loses the completion blocks in loadNext() and loadPrevious(). #45 - @diegosanchezr
    • It's now the dataSource's responsability to notify when pagination finishes (by triggering chatDataSourceDidUpdate(:context))
  • BaseChatViewController is no longer retained until a running update finishes. #47 - @diegosanchezr
  • BaseMessageCollectionViewCell can now be subclassed out of ChattoAdditions. #48 - @bcamur
  • ChatInputBarDelegate made public. #50 - @AntonPalich
  • PhotoMessagePresenter exposes viewModelBuilder and interactionHandler. #52 - @AntonPalich
  • Avatars in cells. #55 - @zwang, #176 - @maxkonovalov
    • MessageViewModelProtocol gets avatarImage property
    • BaseMessageCollectionViewCellStyleProtocol gets methods to configure the layout of the avatar
    • BaseMessageInteractionHandlerProtocol gets userDidTapOnAvatar(viewModel:)
    • ChatItemDecorationAttributes gets canShowAvatar
  • BaseMessagePresenter exposes user events (so subclasses can complement or bypass the interactionHandler). #62 - @AntonPalich
    • BaseMessagePresenter.onCellBubbleTapped()
    • BaseMessagePresenter.onCellBubbleLongPressed()
    • BaseMessagePresenter.onCellFailedButtonTapped()
  • BaseMessagePresenter exposes messageModel, sizingCell, viewModelBuilder, interactionHandler and cellStyle. #63 - @AntonPalich
  • PhotosChatInputItem gets new callbacks cameraPermissionHandler, photosPermissionHandler. #65 - @Viacheslav-Radchenko
  • Enhanced customization for cells and the input component. #67 - @diegosanchezr, #73 @AntonPalich
  • BaseChatViewController exposes referenceIndexPathsToRestoreScrollPositionOnUpdate. #75 - @diegosanchezr
    • It can be overriden to customize how the scroll position is preserved after a update.
  • Fixes blinking when sending text messages on iOS 8
  • Adds placeholders when there are very few photos in the camera roll. #85 - @Viacheslav-Radchenko
  • BaseChatViewController exposes createPresenterFactory(). It can be overriden to provide a factory of presenters with custom logic. #89 - @weyg
  • BaseChatViewController exposes inputContainer. #90 - @diegosanchezr
  • Fixes insets issues. #91, #110 - @diegosanchezr
  • Fixes memory leak when screen is left with the keyboard opened. #93 - @diegosanchezr
  • PhotosChatInputItem listens to changes in the camera roll and updates accordingly. #94 - @AntonPalich
  • Fixes issues with the keyboard #96, #115 - @diegosanchezr, #108 - @AntonPalich
  • BaseChatViewController gets setChatDataSource(_:triggeringUpdateType). #98 - @diegosanchezr
    • This allows to set a dataSource and not trigger an update of the collection view immediately.
    • This can be useful on the first load of the conversation when the dataSource doesn't have any data yet.
  • ChatInputBar gets shouldEnableSendButton closure to customize when the send button is enabled #103 - @ikashkuta
  • Fixes UIMenuController not going away on the first tap outside when the keyboard is dismissed. #104 - @diegosanchezr
  • ChatInputBarDelegate gets inputBarShouldBeginTextEditing(_:) and inputBar(_: shouldFocusOnItem) #105 - @ikashkuta
  • BaseChatViewController gets accessoryViewRevealerConfig. #114 - @diegosanchezr
    • Allows setting an angle threshold that triggers the revealing
    • Allows applying a transform to the finger's translation (to mimic a resistance effect)
  • Fixes sizing of text cells: #122, #123 - @AntonPalich, #127, #161- @diegosanchezr
  • ChatInputBar gets focusOnInputItem(_:) so that an input item can be focused programmatically. #124 - @ikashkuta
  • BaseMessagePresenter gets user events onCellBubbleLongPressBegan() and onCellBubbleLongPressEnded. #125 - @AntonPalich
  • PhotoBubbleView can be subclassed. #130 - @AntonPalich
  • Configurable margins for revealable timestamps. #135 - @AntonPalich
  • BaseChatViewController gets endsEditingWhenTappingOnChatBackground to dismiss the keyboard automatically. #138 - @diegosanchezr
  • BaseMessageCollectionViewCellDefaultStyle gets optional bubbleBorderImages #139 - @diegosanchezr
  • ChatItemsDecorator can now have a last word about the uid used by the update engine. #143 - @diegosanchezr
  • BaseChatViewController gets updatesConfig property. #145 - @diegosanchezr
    • coalesceUpdates controls whether updates are combined (if dataSource notifies about changes while there is a running update)
    • fastUpdates controls whether a UICollectionView update can be performed before the previous one has finished.
  • Exposes BaseChatViewController.updateQueue. #150 - @ikashkuta, #169 - @diegosanchezr
    • Allows clients to pause updates in the UICollectionView.
  • Performance optimizations for text cells. #144, #166 - @diegosanchezr
  • ChatInputBar gets maxCharactersCount to limit text input size
  • Allows ChatInputBar to be instantiated from an own nib. #153 - @makoni
  • Enhanced customization for buttons in ChatInputBar. #154 - @diegosanchezr
  • Fixes memory leak. #165 - @AntonPalich
  • Improves responsiveness of the camera. #168, #173 - @diegosanchezr
  • Preserves height of the input view when switching between input items. #170, #174 - @ikashkuta
  • AccessoryViewRevealable gets allowAccessoryViewRevealing. #175 - @ikashkuta
    • Allows to control whether timestamp can be revealed on a per cell basis.

1.0.1 (Jan 14, 2016)

  • Support for Carthage

1.0 (Nov 27, 2015)

  • First version