- Fixes up content alignment issues from parallel changes to table view
styling.
- Re-adds view controller presentation within a nav controller (stemming
from parallel changes to table view styling)
- Fixes a bug around overzealous collision detection
Also fixes an unrelated issue. Setting up cv banners performs layout, which
can cause the conversation view controller's trait collection to change.
This can lead to us reenterantly setting up banners and updating trait
collection.
The workaround is to just call -ensureBannerState asynchronously from
-traitCollectionDidChange to break the synchronous chain.
The most significant change here is we defer initial loading of
collision interactions. We shouldn't block the main thread during
conversation presentation.
Instead, we'll perform it at UserInitiatedQoS. Once complete, we'll call
-ensureBannerState. Subsequent banner state updates will use the cached
interactions to find name collisions.
Instead of the delegate showing the share sheet for a tapped-on
attachment, let the CVComponentGenericAttachment do it itself. This
keeps the delegate from dealing with any specific component views
within the conversation.
The wallpaper can't be subview index 0 in ConversationViewController.
UIViewController will only automatically adjust content insets for
scroll view's at index 0.
Instead, let's make it index 1 and set the layer's z-index behind the
collection view.
...never the photo picker. This removes the notion of "attach a photo
as a file", which the previous commits have made equivalent to
attaching a photo any other way.
- More robust handling of large button labels in the collision view
controller
- Fixes for VoiceOver labels and navigation
- Fixes for layout issues when rotating
- Update copy for collision banner
- Remove banner shadow for all banners
iOS 13 added support for peek/pop style interactions on non-force touch
devices. ViewControllerPreviewing has been deprecated and replaced with
UIContextMenu.
This change adopts the new API on iOS 13+ devices. iOS 12 force touch
devices will continue to support the old style behavior. This also
enables support for haptic touch/long press interactions on devices that
do not support force touch.