1. Sticker pack toolbar is now at the bottom of the "sticker keyboard" in chat.
2. Sticker pack toolbar is now "floating" in a a glass panel on iOS 26, both in sticker keyboard in chat and in full-screen sticker picker in media editor.
3. There's some helper text when "recent stickers" panel is empty.
• bring back keyboard frame tracking to OWSViewController if running on iOS 15.
• add our own layout guide to OWSViewController that is updated based on keyboard frame notifications on iOS 15; on newer iOS versions it's a proxy to view.keyboardLayoutGuide.
• use OWSViewController.keyboardLayoutGuide where needed.
• in media composer screen (not OWSVIewController subclass) we already track keyboard frame - use that to position bottom toolbar on iOS 15.
I have also discovered that profile avatar editing screen was somewhat broken on older (15, 16) iOS versions. Fixed that here.
Creating a UIImageView outside a view hierarchy now crashes on iOS 18. We can
avoid this offscreen rendering technique by removing UIImage.asTintedImage(),
configuring the tint colour and template rendering on the UIImage directly, and
rendering with UIGraphicsImageRenderer instead of lower-level Core Graphics
APIs.
The old UIButton API is still functional as long as we don't use
UIButton.Configuration, so we can safely ignore these warnings until we're
ready to adopt the configuration API across the codebase.
OWSMath.swift overlaps somewhat with Math+OWS.swift but no worse than
OWSMath.h did previously. There are future refactoring efforts that
should occur there to use more of the extensions of Math+OWS.swift and
less of the extensions from OWSMath.swift
This included:
- Removing unavailable inits wholesale if no longer `required`
- Marking a few classes `final` so they could continue using
`Self(...)` rather than `OWSWhatever(...)`