mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Swift
		
	
// 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
 | 
						|
    }
 | 
						|
}
 |