Text of the exception is:
"Impossible to set up layout with view hierarchy unprepared for constraint"
Since their container view is pinned to the top layout guide, this
should not change the layout.
// FREEBIE
This moves methods more in line with PureLayout conventions.
- Methods always specify if they pin to an edge vs margin
- `margin` is a reserved word which should only refer to layout margins.
i.e. do not use it to refer to "inset" and "offset".
// FREEBIE
from conversation settings > tile > tap for details > delete
TODO:
- Don't dismiss pager, show next item
- dismiss pager if deleting last media
// FREEBIE
First pass at a swipe-through media view for conversations.
Future work could include
- title label per item
- sender name
- date/time
- photo rail
- include caption
// FREEBIE
This no longer made sense now that we're using this in a
PageViewController we won't always be zooming from a particular frame.
TODO:
- why is background image all wonky?
- why aren't views created by the time it's presented? Is that a
regression? (how is self.view a MenuView if loadView hasn't been called)
// FREEBIE
We re-create some constraints when `updateContent` is called, so
we need to ensure those constraints are configured by calling
`updateTextLayout`
// FREEBIE
- sync speakerphone state manipulated from system call screen
- Revert audio session after call failure, ensures media plays out of
speaker after placing a failing call.
- Replace notification with delegate pattern since we're already using
delegate pattern here.
- Fixes voiceover accessibility after voice memo
- Avoid audio blip after pressing hangup
- Rename CallAudioSession -> OWSAudioSession
Going to start using it for other non-call things since we want to
gather all our audio session concerns.
- Resume background audio when done playing video
- Extract OWSVideoPlayer which ensures audio is in proper state before
playback
- Move recording session logic to shared OWSAudioSession
- Deactivate audio session when complete
// FREEBIE