- Fixed an issue in
ATLMessageInputToolbarwhere creating a new line would incorrectly offset the text above until the next character was entered. This also fixed a crash that could happen if Return was pressed rapidly in succession. [APPS-2663] - Fixed a crash that could occur if the
tableFooterViewin theATLConversationListViewControllerwasn't initialized. [APPS-2774] - Fixed an issue where pulling to load more messages in a conversations wouldn't work when it should
- Replaced deprecated
UISearchDisplayControllerwithUISearchControllerinATLConversationListViewController. This reduces complexity by removing the need to switch between different query controllers. - Replaced deprecated
UISearchDisplayControllerwithUISearchControllerinATLParticipantTableViewController. - Updated some deprecated
NSCalendarobjects inATLConversationTableViewCell. - Refactored
ATLConversationViewControllerto harden against mismanagement and prevent common crashes and issues.
- Fixed an issue in
ATLConversationViewControllerwhere the "more messages indicator" would continue to display and spin even if all messages had been synced. This was due to a mismatch between the total number of messages in a conversation and the total number of non-deleted messages for that user. [APPS-2629] - Fixed a pagination issue in
ATLConversationViewControllerwhere, after navigating to a conversation, additional messages would not sync and the activity indicator would continue to spin until the user pulled down. ATLConversationListViewControllerno longer filters out conversations the authenticated user was removed from. This allows the user to access the conversation and mark messages as read in order to have an accurate unread badge count.- Fixed a crash in
ATLAddressBarViewControllerthat could occur if a participant was selected while thedisplayNamewasnil. It will now appear asUnknown Participantinstead.
ATLParticipantTableDataSetis now mutable and observes changes to Identity objects and updates the associatedUITableView. [APPS-2470]- Displays timestamps in
ATLConversationViewControllerfor groups of messages regardless of sorting. Messages sent first but displayed second will now show a timestamp. [APPS-2608] - Adds pagination capabilities to the
ATLConversationViewControllerquery controller. [APPS-2524]
- Fixes a case in
ATLConversationViewControllerwhere the query controller's delegate would not be unset. - Fixes a couple issues in
ATLConversationListViewControllerwhere the query controller could be instantiated twice. [APPS-2598] - Fixes an issue where the "more messages" indicator would not initially appear in
ATLConversationViewController.
- Fixes the build errors in the included Example classes.
- Fixes a crash when updating the
ATLConversationListViewControllerwhile the search bar is active. [APPS-2587] - Fixes an issue in iOS 9 where the list of conversations would briefly flash when returning from a view with an active keyboard. [APPS-2594]
- Fixes an issue in the
ATLMessageInputToolbarwhere adding a new line would result in text misalignment. [APPS-2593]
- Fixes an issue where messages in a new conversation would not appear until the conversation was reloaded.
- Fixes a crash in the
ATLConversationListViewControllerrelated to the query controller being initialized multiple times. - Fixes a crash when trying to get the avatar initials from a
LYRIdentityobject if it wasn't fully synced.
- Fixes the crash related to the new
LYRQueryControllerbehavior introduced in LayerKit v0.23.0. [APPS-2560]
- Fix of the conversation list query in the
ATLConversationListViewController. [APPS-2506]
- Upgraded
LayerKitto version0.22.0. Due to breaking API changes introduced in LayerKit, affected code has been fixed.
ATLAddressBarControllernow uses theATLParticipantdisplayNameproperty instead offirstNamewhen displaying names in theATLAddressBarTextView.
- Adds support for
CocoaPods1.0.0. - Bumps
LayerKitversion to0.21.0.
- Fixes an issue where a loading spinner wouldn't disappear for conversations deleted with
My Devicesdeletion mode.
- Fixes an issue where a loading spinner wouldn't disappear after pulling to load more messages in a conversation view controller.
- Fixes an issue where info.plist key could prevent app store submission.
- Integrates LayerKit's partial-sync feature in the
ATLConversationDataSourceclass. - Integrates LayerKit's identity feature into the
ATLConversationListViewControllerandATLConversationViewControllerclasses. - Updated nullability support.
- Added in line push support.
ATLConversationViewControllerdatasource methodconversationViewController:participantForIdentifier:has been changed toconversationViewController:participantForIdentity:.- Adds
conversationListViewController:rowActionsForDeletionModes:method toATLConversationListViewControllerDataSource.
- Fixes a bug where the pagination window in the
ATLConversationViewControllerkept the spinner on screen even when no longer loading messages. - Fixed an issue where message part data was
nilfor text messages.
- Fixed an issue in the
ATLConversationListViewControllerthat caused an exception to be thrown during cell dequeueing. - Added missing files into the
Atlastarget to fix a bug with Carthage installations.
- Added support for new
LayerKitdeletion modeLYRDeletionModeMyDevices. - Removed support for
LYRDeletionModeLocalas it has been deprecated. - Changed default conversation deletion option strings to
My DevicesandEveryoneto make the options more explicit.
- Introduced
ATLBaseCollectionViewCellwhich is now the base cell for all message cells containing a message bubble. Developers can now subclass theATLBaseCollectionViewCelland add easily their own custom UI to a message bubble cell. - Moved the following properties from
ATLMessageCollectionViewCelltoATLBaseCollectionViewCell:bubbleViewColor,bubbleViewCornerRadius,bubbleView,avatarImageView, andmessage.
- Fixes an issue which prevented application archives from being submitted to the app store. The issue was caused by and unnecessary key in the
Resources/info.plistfile. - Fixes a
UILayoutConstraintconflict when displaying a UIMapView in theATLMessageBubbleView.
- Added support for installing Atlas via Carthage.
- Changed dependency to LayerKit v0.17.1 to pick up module import changes.
- Added support for configuring the right button title in
ATLMessageInputToolbar.
- Fixed an issue with slow scrolling performance under iOS 9.
- Fixed build problems in Swift projects regarding non-module header imports.
- Exposed
ATLConversationViewControllermethodsendMessage:to allow customLYRMessageobjects to use Atlas delegate handling. - Introduced
verticalMarginproperty onATLMessageInputToolbarto specify top and bottom margins for the text input view.
- Improved
UIMenuControllerbehavior.
- Updated the Atlas podspec that caused build errors for some users.
- Fixed an iOS9 bug with duplicate keyboards being dismissed.
- Improved
UIMenuControllerbehavior while scrolling. - Cached message cell height to improve scrolling performance.
- Added native video support.
- Atlas uses
LayerKit v0.17.0which provides support for dynamic frameworks.
- Fixed iOS9 issue with the
ATLMessageInputToolbarhaving a black background when presented on screen. - Fixed iOS9 breaking layout constraints.
- Implemented
conversationViewController:configureCell:forMessage:to allowATLConversationViewControllersubclasses to add extra cell configuration. - Added
shouldDisplayAvatarItemForAuthenticatedUsertoATLConversationViewControllerto display avatar items for the authenticated user. - Added
ATLAvatarItemDisplayFrequencyproperty toATLConversationViewControllerto allow customization of avatar frequency. - Exposed
LYRQueryControlleronATLConversationViewController. - Added
NSTextCheckingTypeonATLMessageBubbleView. - Added
menuControllerActionsonATLMessageBubbleViewto customize UIMenuController actions.
ATLConversationViewControllercaches unsent media attachments in theATLMessageInputToolbarupon deallocation, and re-inserts them on creation.- Added Localization support.
- Asynchronous image and GIF loading in
ATLMessageCollectionViewCell.
- Fixed bug that caused avatar images to flicker when loading photos from remote URLs.
- Fixed bug that caused UIMenuController to stay on screen during pan gesture.
- Fixed bug that caused images to stretch if smaller than the minimum cell size.
- Fixed bug introduced in 1.0.9 relating to media attachment text color for attributed string.
- Exposed private initializers of
ATLConversationViewControllerandATLConversationListViewControllerto allow subclassing for custom initialization.
- Removed compiler warnings that showed from direct installation due to deprecations.
- Updated change notification handling code due to LayerKit library upgrade to v0.13.3, which has some braking changes in change notifications dictionary.
- Implemented
conversationListViewController:configurationForDefaultQuery:to provide for query customization in theATLConversationListViewController. - Implemented
conversationViewController:configurationForDefaultQuery:to provide for query customization in theATLConversationViewController.
- Removed all compiler warnings.
- Added
avatarImageURLproperty toATLAvatarItem.
- Added logic to fetch image from a URL to
ATLAvatarImageView. - Added image cache to
ATLAvatarImageView.
- Fixed bug which caused
ATLConversationViewControlleranimation assertions when attempting to reload cells via the public API. - Fixed bug which prevented cell font customizations from being appied.
- Moved
searchControllerproperty to public API onATLConversationListViewController. - Moved
UIImagePickerControllerDelegateandUINavigationControllerDelegatedeclarations to header ofATLConversationViewController. - Added
leftAccessoryImage,rightAccessoryImageanddisplaysRightAccessoryImagetoATLMessageInputToolbar.
- Introduced new functionality to facilitate reloading content after asynchronous reloads of user information.
- Added
reloadCellsForMessagesSentByParticipantWithIdentitifier:toATLConversationViewController. - Removed
collectionViewCellForMessage:fromATLConversationViewController.
- Added
conversationListViewController:textForButtonWithDeletionMode:toATLConversationListViewController - Added
conversationListViewController:colorForButtonWithDeletionMode:toATLConversationListViewController
- Updated LayerKit dependency to v0.10.3
- New compatible with CocoaPods >= 0.36.0
- Initial public release of Atlas.
- Added property
blockedParticipantIdentifierstoATLParticipantTableViewController.
- Added
addressBarViewControllerDidSelectWhileDisabled:toATLAddressBarViewController. - Changed all class prefixes from
LYRUItoATL. - Added
conversationListViewController:didSearchForText:completiontoATLConversationListViewController.
- Added search functionality to the
ATLConversationListViewController.
- Changed
setPermanenttodisableonLYRUIAddressBarViewController. - Changed
isPermanenttoisDisabledonLYRUIAddressBarViewController. - Changed
updateWithConversationLabel:toupdateWithConversationTitle:onLYRUIConversationPresenting. - Chanded
shouldDisplayAvatarImage:toshouldDisplayAvatarItem:onLYRUIMessagePresenting. LYRUIParticipantnow inherits from theLYRUIAvatarItemprotocol.- Changed
presentParticipant:withSortType:shouldShowAvatarImage:topresentParticipant:withSortType:shouldShowAvatarItem:onLYRUIParticipantPresenting - Added
avatarItemproperty toLYRUIAvatarImageView. - Removed
setInitialsForFullName: - Changed
conversationLabelColortoconversationTitleLabelColorinLYRUIConversationCell. - Changed
conversationLabelFonttoconversationTitleLabelFontinLYRUIConversationCell. - Added
conversationListViewController:didSearchWithString:completion:toLYRUIConversationListViewController.
- Deprecated
LYRUIParticipantPickerController. - Changed
LYRUIParticipantTableViewControllerinitailizer toparticipantTableViewControllerWithParticipants:sortType.
- Added storyboard support for
LYRUIParticipantTableViewController. - Added storyboard support for
LYRUIConversationViewController. - Added storyboard support for
LYRUIConversationListViewController. layerClientproperty is no longer read only inLYRUIConversationViewController.layerClientproperty is no longer read only inLYRUIConversationListViewController.
- Changed
displaysConversationImagetodisplaysAvatarIteminLYRUIConversationListViewController.h. - Changed
conversationListViewController:labelForConversation:toconversationListViewController:titleForConversation:inLYRUIConversationListViewController.h. - Added
deletionModestoLYRUIConversationListViewController.h. - Removed
conversationTitleproperty inLYRUIConversationViewController. - Removed
conversationViewController:shouldMarkMessagesAsRead: - Added
marksMessagesAsReadproperty. - Changed
layerClientproperty to be readonly. - Changed
conversationViewControllerWithConversation:layerClient:toconversationViewControllerWithLayerClient:
LYRUIConversationViewControllernow sends mixed content (e.g. an image and text) in multiple messages, i.e. one message per piece of content (e.g. one message with an image part and another message with a text part). Correspondingly, it now displays one cell for each message. The previous behavior was to display one cell for each message part. The default message cells assume that each message only has one part. So a multi-part message (e.g. one sent with the previous behavior) will only have its first part displayed.
- Moved
LYRUIUserDidTapLinkNotificationfromLayerUIKit.htoLYRUIMessageBubbleView.h. - Added
messageproperty toLYRUIConversationCollectionViewHeader. - Added
LYRUIConversationDataSource. - Changed
LYRUITypingIndicatorViewtoLYRUITypingIndicatorViewController. - Added
LYRUIProgressView. - Removed method
isGroupConversation:fromLYRUIMessagePresenting. - Added
LYRUIMIMETypeImageJPEGPreviewandLYRUIMIMETypeImageSizetoLYRUIMessagingUtilities. - Added
LYRUIPhotoForLocationtoLYRUIMessagingUtilities. - Changed
conversationListViewController:imageForConversation:toconversationListViewController:avatarItemForConversation:. - Added
LYRUIAvatarItemprotocol. - Added
imageViewBackgroundColorproperty toLYRUIAvatarImageView. - Added
conversationViewController:messagesForContentParts:toLYRUIConversationViewController. - Removed
conversationViewController:pushNotificationTextForMessagePart:fromLYRUIConversationViewController. - Removed
avatarImageViewCornerRadiusproperty fromLYRUIMessageCollectionViewCell. - Added
avatarImageViewDiameterproperty toLYRUIAvatarImageView. - Removed
updateWithMessageSentState:method fromLYRUIMessagePresenting. Message sent state can be inferred from theisSentproperty onLYRMessage. - Added
LYRUIUserDidTapLinkNotificationtoLayerUIKit. - Added
collectionViewCellForMessage:toLYRUIConversationViewController. - Added
bubbleViewCornerRadiusproperty toLYRUIMessageCollectionViewCell. - Added
avatarImageViewCornerRadiusproperty toLYRUIMessageCollectionViewCell. - Changed
backgroundColorproperty tocellBackgroundColoronLYRUIConversationTableViewCell. - Removed
updateWithBubbleViewWidth:fromLYRUIMessageCollectionViewCell. - Changed
-[<LYRUIConversationViewControllerDataSource> conversationViewController:pushNotificationTextForMessageParts:]toconversationViewController:pushNotificationTextForMessagePart:. That is, one message part is passed instead of an array of message parts. - Changed
-[<LYRUIMessagePresenting> presentMessagePart:]topresentMessage:. That is, a message is passed instead of a message part. - Added
isPermanenttoLYRUIAddressBarViewController. - Changed
-[<LYRUIAddressBarControllerDataSource> searchForParticipantsMatchingText:completion:]toaddressBarViewController:searchForParticipantsMatchingText:completion:. That is, the view controller is now passed as the first parameter. This callback also now controls the order of search results by providing anNSArrayinstead of anNSSetin the completion block. - Changed
-[LYRUIMessageInputToolbarDelegate messageInputToolbarDidBeginTyping:]tomessageInputToolbarDidType:. -[LYRUIMessageInputToolbar insertLocation:]has been removed since it was unused.- Removed
maxHeightproperty fromLYRUIMessageComposeTextView. Use themaxNumberOfLinesproperty ofLYRUIMessageInputToolbarinstead. - Removed
-[LYRUIMessageComposeTextView insertImage:]. Use-[LYRUIMessageInputToolbar insertImage:]instead. - Removed
-[LYRUIMessageComposeTextView removeAttachements]. It doesn't have a replacement since it was meant for internal use only. - Changed
placeHolderTextproperty ofLYRUIMessageComposeTextViewtoplaceholder. - Removed
pendingBubbleViewColorproperty ofLYRUIMessageCollectionViewCell. - Changed
avatarImageproperty ofLYRUIMessageCollectionViewCelltoavatarImageView. - Removed
initialViewBackgroundColorproperty ofLYRUIAvatarImageView. UsebackgroundColorinstead. - Changed
initialFontproperty ofLYRUIAvatarImageViewtoinitialsFont. - Changed
initialColorproperty ofLYRUIAvatarImageViewtoinitialsColor. - Changed
-[<LYRUIParticipantPickerControllerDelegate> participantSelectionViewControllerDidCancel:]toparticipantPickerControllerDidCancel:. - Changed
-[<LYRUIParticipantPickerControllerDelegate> participantSelectionViewController:didSelectParticipant:]toparticipantPickerController:didSelectParticipant:. - Changed
-[<LYRUIParticipantPickerDataSource> searchForParticipantsMatchingText:completion:]toparticipantPickerController:searchForParticipantsMatchingText:completion:. - Changed
-[<LYRUIParticipantPickerDataSource> participants]toparticipantsForParticipantPickerController:. - Changed
-[<LYRUIParticipantTableViewControllerDelegate> participantTableViewControllerDidSelectCancelButton]toparticipantTableViewControllerDidCancel:. - Removed
selectionIndicatorproperty fromLYRUIParticipantTableViewController. - Added
participantPickerController:didDeselectParticipant:toLYRUIParticipantPickerControllerDelegate. - Added
participantTableViewController:didDeselectParticipant:toLYRUIParticipantTableViewControllerDelegate. - Replaced
presentParticipant:,updateWithSortType:andshouldShowAvatarImage:onLYRUIParticipantPresentingwithpresentParticipant:withSortType:shouldShowAvatarImage:. - Changed
LYRUIParticipantPickerControllerSortTypeFirsttoLYRUIParticipantPickerSortTypeFirstName. - Changed
LYRUIParticipantPickerControllerSortTypeLasttoLYRUIParticipantPickerSortTypeLastName. - Changed
LYRUIPaticipantSectionHeaderViewtoLYRUIParticipantSectionHeaderView. - Removed
initWithKey:fromLYRUIParticipantSectionHeaderView. - Changed
keyLabelproperty tonameLabelonLYRUIParticipantSectionHeaderView. - Removed
conversationListViewController:didSearchWithString:completion:fromLYRUIConversationListViewControllerDataSource. - Changed
layerClientproperty onLYRUIConversationListViewControllerfromreadwritetoreadonly. - Changed
lastMessageTextFontproperty onLYRUIConversationTableViewCelltolastMessageLabelFont. - Changed
lastMessageTextColorproperty onLYRUIConversationTableViewCelltolastMessageLabelColor. - Added optional
conversationViewController:conversationWithParticipants:method toLYRUIConversationViewControllerDataSource. - Changed
selectedParticipantsproperty onLYRUIAddressBarViewControllerfrom areadonlyNSSetto areadwriteNSOrderedSet.
- Fixed bug which allowed name labels to be truncated in
LYRUIParticipantTableViewCell. - Fixed bug which would display an empty name string if the
fullNameproperty ofLYRUIParticipantwas nil inLYRUIParticipantTableViewCell. - Fixed bug which would display inaccurate initials if the
fullNameproperty ofLYRUIParticipantwas nil inLYRUIParticipantTableViewCell. - Fixed bug which allowed messages to be marked as read while app is in the background.
- Removed duplicate MIMEType constant declarations.
- Fixed possibility of customizations via
UIAppearancebeing overridden. - Fixed issue related to sending a push notification with
(null)text. - Fixed typo for property
conversationLabelColoronLYRUIConversationTableViewCell. - Fixed typo in C function signature
LYRUILightGrayColor(). - Added logic to guard against messages with external content in applications using LayerKit v0.9.2 and previous.
LYRUIAddressBarViewControllernow shows only first names when set permanent.- Implemented progress view in
LYRUIBubbleView. - Implemented pagination in the
LYRUIConversationViewController. LYRUIConversationTableViewCellno longer shows conversation image by default.- Implemented
LayerUIKitunit test suite. - Re-implemented
LayerUIKitmock objects. - Re-factored
LayerUIKitsample app to use new mock objects. - Refactored internal constants.
- Added support for external content.