* 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
* 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 -
Also allow user to override layoutConstants in
BaseMessageCollectionViewCell and allow user to specify
VerticalAlignment of avatar: Top, Bottom or Center
-This commit exposes messageViewModel, createBubbleView() and init
functions of BaseMessageCollectionViewCell class to other modules by
changing their access modifiers to ‘public’.
-This also requires to change the access level of createBubbleView()
function of TextMessageCollectionViewCell and
PhotoMessageCollectionViewCell to be made ‘public’