When switching to the "system" theme mode, if the effective appearance matched
the previous overridden theme mode, the theme change would be ignored. By
comparing the mode instead of just the effective appearance, we properly react
to system appearance changes.
Additionally, rework the transition animation for changing themes to match the
animation of system appearance changes (i.e., a 0.5-second cross-dissolve).
Fixes: https://signalmessenger.atlassian.net/browse/IOS-4431
This appears to have been a hack for something that may have been
necessary in older versions of iOS. Current iOS seems to just return
true with no side-effects from this super call so there's no reason to
retain this hack apparent.
* Use iOS 13+ UINavigationBarAppearance for navbar styling
* various individual view controller navbar style tweaks and fixes
* Remove unused navigation bar styles
* rename 'default' style blur
* Apply blur style to the UIVisualEffectView generated by UINavigationBarAppearance
* Use iOS 12 navbar blur method on iOS 13 since its bugged
* Fix on iOS 15, use old method on iOS 14
* PR comment nits
* explicitly invalidate KVO observers
* make shouldCancelNavigationBack a var
* rename OWSNavigationView->OWSNavigationChildController
* forward delegate calls to OWSNavigationController
* apply theme and style to OWSNavigationBar consistently
fix themeing on gif picker controller
* Use topPinned navbar position. Size the blur effect view using the background view
* Use fade animation when hiding the navigation bar
* fix issues with reduced transparency setting
* pr feedback