|
|
|
@ -59,13 +59,14 @@ public class OWSNavigationBar: UINavigationBar {
|
|
|
|
|
|
|
|
|
|
private func applyTheme() {
|
|
|
|
|
guard respectsTheme else {
|
|
|
|
|
self.blurEffectView?.removeFromSuperview()
|
|
|
|
|
removeBlurEffectView()
|
|
|
|
|
|
|
|
|
|
self.setBackgroundImage(nil, for: .default)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if UIAccessibilityIsReduceTransparencyEnabled() {
|
|
|
|
|
self.blurEffectView?.removeFromSuperview()
|
|
|
|
|
removeBlurEffectView()
|
|
|
|
|
let color = Theme.navbarBackgroundColor
|
|
|
|
|
let backgroundImage = UIImage(color: color)
|
|
|
|
|
self.setBackgroundImage(backgroundImage, for: .default)
|
|
|
|
@ -80,6 +81,7 @@ public class OWSNavigationBar: UINavigationBar {
|
|
|
|
|
|
|
|
|
|
let blurEffectView: UIVisualEffectView = {
|
|
|
|
|
if let existingBlurEffectView = self.blurEffectView {
|
|
|
|
|
existingBlurEffectView.isHidden = false
|
|
|
|
|
return existingBlurEffectView
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -194,6 +196,29 @@ public class OWSNavigationBar: UINavigationBar {
|
|
|
|
|
self.setBackgroundImage(UIImage(), for: .default)
|
|
|
|
|
self.shadowImage = UIImage()
|
|
|
|
|
self.clipsToBounds = true
|
|
|
|
|
self.blurEffectView?.isHidden = true
|
|
|
|
|
removeBlurEffectView()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MARK:
|
|
|
|
|
|
|
|
|
|
private func removeBlurEffectView() {
|
|
|
|
|
// Avoid crash on iOS 10.3.3 and iOS 9.4.
|
|
|
|
|
//
|
|
|
|
|
// Last Exception Backtrace:
|
|
|
|
|
// 0 CoreFoundation 0x1b6bfb38 __exceptionPreprocess + 124 (NSException.m:165)
|
|
|
|
|
// 1 libobjc.A.dylib 0x1a947062 objc_exception_throw + 34 (objc-exception.mm:521)
|
|
|
|
|
// 2 CoreFoundation 0x1b6bfa80 +[NSException raise:format:] + 104 (NSException.m:140)
|
|
|
|
|
// 3 UIKit 0x20bfc9fe -[UINavigationBar removeConstraint:] + 84 (UINavigationBar.m:4618)
|
|
|
|
|
// 4 UIKit 0x208ee3d4 _UIViewRemoveConstraintsMadeDanglyByChangingSuperview + 534 // (NSLayoutConstraint_UIKitAdditions.m:4716)
|
|
|
|
|
// 5 UIKit 0x208ede90 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 40 // (UIView.m:9467)
|
|
|
|
|
// 6 UIKit 0x208edd6c -[UIView(Hierarchy) _postMovedFromSuperview:] + 710 (UIView.m:361)
|
|
|
|
|
// 7 UIKit 0x20bd19e8 __UIViewWasRemovedFromSuperview + 154 (UIView.m:8889)
|
|
|
|
|
// 8 UIKit 0x208ecf6a -[UIView(Hierarchy) removeFromSuperview] + 528 (UIView.m:8961)
|
|
|
|
|
// 9 SignalMessaging 0x1d42b64 OWSNavigationBar.applyTheme() + 218 (OWSNavigationBar.swift:62)
|
|
|
|
|
if #available(iOS 11, *) {
|
|
|
|
|
self.blurEffectView?.removeFromSuperview()
|
|
|
|
|
} else {
|
|
|
|
|
self.blurEffectView?.isHidden = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|