|  |  |  | // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import UIKit | 
					
						
							|  |  |  | import SessionUIKit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public class BaseVC: UIViewController { | 
					
						
							|  |  |  |     public override var preferredStatusBarStyle: UIStatusBarStyle { | 
					
						
							|  |  |  |         return ThemeManager.currentTheme.statusBarStyle | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     lazy var navBarTitleLabel: UILabel = { | 
					
						
							|  |  |  |         let result = UILabel() | 
					
						
							|  |  |  |         result.font = .boldSystemFont(ofSize: Values.veryLargeFontSize) | 
					
						
							|  |  |  |         result.themeTextColor = .textPrimary | 
					
						
							|  |  |  |         result.textAlignment = .center | 
					
						
							|  |  |  |         result.alpha = 1 | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         return result | 
					
						
							|  |  |  |     }() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     lazy var crossfadeLabel: UILabel = { | 
					
						
							|  |  |  |         let result = UILabel() | 
					
						
							|  |  |  |         result.font = .boldSystemFont(ofSize: Values.veryLargeFontSize) | 
					
						
							|  |  |  |         result.themeTextColor = .textPrimary | 
					
						
							|  |  |  |         result.textAlignment = .center | 
					
						
							|  |  |  |         result.alpha = 0 | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         return result | 
					
						
							|  |  |  |     }() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public override func viewDidLoad() { | 
					
						
							|  |  |  |         super.viewDidLoad() | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         navigationItem.backButtonTitle = "" | 
					
						
							|  |  |  |         view.themeBackgroundColor = .backgroundPrimary | 
					
						
							|  |  |  |         ThemeManager.applyNavigationStylingIfNeeded(to: self) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         setNeedsStatusBarAppearanceUpdate() | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     internal func setNavBarTitle(_ title: String, customFontSize: CGFloat? = nil) { | 
					
						
							|  |  |  |         let container = UIView() | 
					
						
							|  |  |  |         navBarTitleLabel.text = title | 
					
						
							|  |  |  |         crossfadeLabel.text = title | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         if let customFontSize = customFontSize { | 
					
						
							|  |  |  |             navBarTitleLabel.font = .boldSystemFont(ofSize: customFontSize) | 
					
						
							|  |  |  |             crossfadeLabel.font = .boldSystemFont(ofSize: customFontSize) | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         container.addSubview(navBarTitleLabel) | 
					
						
							|  |  |  |         container.addSubview(crossfadeLabel) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         navBarTitleLabel.pin(to: container) | 
					
						
							|  |  |  |         crossfadeLabel.pin(to: container) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         navigationItem.titleView = container | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     internal func setUpNavBarSessionHeading() { | 
					
						
							|  |  |  |         let headingImageView = UIImageView( | 
					
						
							|  |  |  |             image: UIImage(named: "SessionHeading")? | 
					
						
							|  |  |  |                 .withRenderingMode(.alwaysTemplate) | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         headingImageView.themeTintColor = .textPrimary | 
					
						
							|  |  |  |         headingImageView.contentMode = .scaleAspectFit | 
					
						
							|  |  |  |         headingImageView.set(.width, to: 150) | 
					
						
							|  |  |  |         headingImageView.set(.height, to: Values.mediumFontSize) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         navigationItem.titleView = headingImageView | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     internal func setUpNavBarSessionIcon() { | 
					
						
							|  |  |  |         let logoImageView = UIImageView() | 
					
						
							|  |  |  |         logoImageView.image = #imageLiteral(resourceName: "SessionGreen32") | 
					
						
							|  |  |  |         logoImageView.contentMode = .scaleAspectFit | 
					
						
							|  |  |  |         logoImageView.set(.width, to: 32) | 
					
						
							|  |  |  |         logoImageView.set(.height, to: 32) | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         navigationItem.titleView = logoImageView | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |