Commit Graph

100 Commits

Author SHA1 Message Date
Anton Schukin 43e1f675fb ChatInputItemProtocol.selected and ChatInputItemProtocol.disabled properties became public 2016-07-27 10:01:47 +01:00
Anton Schukin f0198d77ce Use calculated properties instead of functions in default protocol implementation 2016-07-26 18:25:09 +01:00
Anton Schukin 946232bf21 Ignore tap if input item is disabled 2016-07-26 18:06:26 +01:00
Anton Schukin 15d2e1f817 Fixed tests compilation issue 2016-07-26 17:59:05 +01:00
Anton Schukin c17a99014b Move ChatInputItem selected and enabled properties to protocol extension 2016-07-26 17:55:42 +01:00
Anton Schukin a8ba3531b7 tabView renamed to inputButton for consistency 2016-07-26 17:50:17 +01:00
Anton Schukin 3fa9853321 TabInputButton renamed to ChatInputButton for consistency 2016-07-26 17:34:57 +01:00
Diego Sánchez d8a162cb0f Xcode 8.0 b3 + swift 2.3 support (#183)
* Fixes compilation for Xcode 8.0(beta 3)/Swift 2.3

* Adds NSCameraUsageDescription and NSPhotoLibraryUsageDescription to avoid crash on iOS 10 beta

* Runs swiftlint autocorrect
2016-07-18 23:28:11 +01:00
Max Konovalov 1329c96a0e Avatar improvements (#176)
* Add showsAvatar decoration attribute

* Add avatar tap handler

* Add avatar to photo message

* Fix tests

* Rename showsAvatar to canShowAvatar
2016-07-18 20:35:09 +01:00
Anton Schukin 26a4a0e0c8 Allow customisation of timestamp revealing behaviour 2016-07-12 17:49:40 +01:00
Anton Schukin 45730f1696 Merge branch 'dev' into improve-responsiveness-of-camera 2016-07-12 15:13:46 +01:00
Max Konovalov 7d410e5760 Make photo message cell style Colors initializer public (#177) 2016-07-08 00:04:34 +01:00
Diego Sánchez 359ebe1aa4 Merge branch 'dev' into improve-responsiveness-of-camera 2016-07-06 11:34:31 +01:00
Igor Kashkuta 6f0e82fb7d Fix jolty transitions between input items. (#174) 2016-07-06 11:16:51 +01:00
Diego Sanchez 8f9ce5df4e Improves responsiveness of camera when switching to/from full-screen camera view. 2016-07-05 23:14:22 +01:00
Diego Sánchez e4315bf4e8 Makes source code compatible with Swift 2.3 (#156) 2016-07-04 19:07:41 +01:00
Igor Kashkuta 600da97e13 Revert "Preserve height of ChatInputItem if keyboard item was previously opened. (#170)" (#172)
This reverts commit b2fcf7b7fc.
2016-07-04 16:18:21 +01:00
Igor Kashkuta b2fcf7b7fc Preserve height of ChatInputItem if keyboard item was previously opened. (#170) 2016-06-30 20:30:36 +01:00
Diego Sánchez 7a0f8d8e58 Improvements to photo input item: (#168)
- Just one capture session per input component.
 - Avoids starting/stoping capture during collection reloads, which can make the live camera take longer to capture or even hang.
 - Moves creation/destruction of capture session to the background: when opening/closing the input component many times it was resulting in capture start / stop blocking the main thread for some seconds on iOS 8
 - Queues updates in the collection view: doing a reloadData right after reloadItemsAtIndexPaths (update video) results in the visible cells not being refreshed
2016-06-29 23:54:15 +01:00
Igor Kashkuta 25b32bb0cb Add view parameter to userDidTapOnFailIcon() (#167)
* Add view parameter to userDidTapOnFailIcon() interaction handler method. Pass failed button view into it.
2016-06-28 15:20:20 +01:00
Diego Sánchez 37dd3bd562 Minor performance improvements for TextBubble (#166)
* Minor performance improvements:
 - Avoids updating font and color in TextBubble if it's not needed: would make attributed text to update
 - Avoids updating views in selected setter if value didn't change (setter is called by the collection view as part of dequeuing)
 - Avoids creating dictionary of attributes all the time for date attributed string (for some reason this was appearing in profiling with some swift-to-objc conversions)

Uses enum as image key in text style for greater safety.

* Removes linter warnings
2016-06-27 23:03:32 +01:00
Diego Sánchez bc4c9d8a64 Fixes crash when deleting a emoji. (#162)
Issue related to Unicode and String vs NSString.

NSRange has length = 2 for the emoji while it represents a single character.
2016-06-23 15:21:21 +01:00
Diego Sánchez 29173b03b5 Fixes text sizing issue. (#161)
Setting UITextView.textColor after UITextView.text may result in a NSTextStorage string that doesn't match our size calculation routine.
2016-06-23 14:41:08 +01:00
Diego Sánchez 5c3c84e6a6 Input bar customization enhancements (#154)
Adds more customizable options to the input bar

Bar with icons gets customizable height
Buttons get customizable intrinsic contentSize, so they can be bigger and easy to tap
Buttons get customizable images for any UIControlState
Send button gets customizable text colors for any UIControlState
2016-06-16 15:27:37 +01:00
Igor Kashkuta 33b2016638 Make default messages time formatter respect current locale. (#155) 2016-06-16 10:27:01 +01:00
Sergey Armodin 9538acf79d Make HorizontalStackScrollView public to make possible creating subclass of ChatInputBar with own xib (#153)
* Merge remote-tracking branch 'badoo/master' into dev

Make HorizontalStackScrollView public to make possible creating
subclass of ChatInputBar with own xib

* override fix
2016-06-14 16:00:42 +01:00
Diego Sánchez f442111937 Allows configuring a maximum number of characters for the input bar (#152) 2016-06-14 14:22:42 +01:00
Igor Kashkuta d4d2577959 Make updateQueue public so subclasses can control it. (#150)
* Make update queue of BaseChatViewController public

* Fix SwiftLint's warnings.

* Fix tests
2016-06-14 12:53:40 +01:00
Diego Sánchez d87fe40c90 Some optimizations for TextBubbleView (#144) 2016-06-01 13:43:37 +01:00
Diego Sánchez 6e55f5e052 Make border images optional in BaseMessageCollectionViewCellDefaultStyle (#139) 2016-05-27 16:54:20 +01:00
Diego Sánchez 62757faa54 Fixes cell being configured with the wrong image coming from PHImageManager (#137) 2016-05-25 18:32:16 +01:00
Anton Schukin 6c469185d5 Make some properties public 2016-05-25 11:30:05 +01:00
Anton Schukin 12c79b919a Allow to specify margins for revealable timestamps 2016-05-18 14:59:42 +01:00
Diego Sánchez 3b62da46a3 Text bubble fixes (#127)
* Fixes diacritic marks being clipped.

This changes how text insetting is performed. By using non-zero textInsets, UITextView size is now bigger and diacritic marks can be seen.

* Fixes size of text not matching UITextView.sizeThatFits(_:) for some strings - which was leading to incorrect size of text bubbles -
2016-05-12 15:54:56 +01:00
Anton Schukin d84a9805a4 Allow PhotoBubbleView to be subclassed 2016-05-11 10:49:07 +01:00
Anton Schukin b4308dcd7b Make BaseMessagePresenter.decorationAttributes public 2016-05-11 10:43:48 +01:00
Anton Schukin c11374ae3c Added ability to react on different states of UILongPressGestureRecognizer 2016-05-06 13:30:32 +01:00
Igor Kashkuta 31a441aebc Preserve old behavior with call to -shouldFocusOnItem function 2016-05-05 19:09:05 +01:00
Igor Kashkuta 4dcf4a4f4b Remove unused parameter 2016-05-05 19:03:12 +01:00
Igor Kashkuta 2069b367a4 Add ability to focus on chat input item programmatically. 2016-05-05 18:57:50 +01:00
Anton Schukin 136473d1b0 Fixed issue with text size calculation v2 2016-05-05 16:37:51 +01:00
Anton Schukin 47f6692eca Revert "Merge pull request #122 from AntonPalich/Fix_text_size_calculation"
This reverts commit 06655cdd77, reversing
changes made to acc9900c98.
2016-05-05 16:33:01 +01:00
Anton Schukin 5a9c096e02 Fixed text size calculation 2016-05-05 14:47:50 +01:00
Diego Sanchez f3e3556a20 Fixes some keyboard issues 2016-04-20 11:51:49 +01:00
Igor Kashkuta 3319ba9036 Aand add one more simplification with default value for optionals 2016-04-14 18:14:41 +01:00
Igor Kashkuta a5dbc88c68 Simplify code with optionals. 2016-04-14 18:07:54 +01:00
Igor Kashkuta e1b88baeac Use ?? instead of complex if statement. 2016-04-14 17:50:09 +01:00
Igor Kashkuta 67387f1d9d Add ability to disallow focus on InputItem for ChatInputBar. 2016-04-14 17:32:59 +01:00
Igor Kashkuta 4d4fbed64d Add ability to disallow the beginning of text editing for ChatInputBar. 2016-04-14 17:32:41 +01:00
Igor Kashkuta 9b4232bcb3 Rename isSendButtonEnabledForInputBar -> shouldEnableSendButton 2016-04-13 15:59:33 +01:00