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.
		
		
		
		
		
			
		
			
				
	
	
		
			98 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Swift
		
	
//
 | 
						|
//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
import UIKit
 | 
						|
import SignalMessaging
 | 
						|
import PureLayout
 | 
						|
 | 
						|
// All Observer methods will be invoked from the main thread.
 | 
						|
protocol SAEFailedViewDelegate: class {
 | 
						|
    func shareViewWasCancelled()
 | 
						|
}
 | 
						|
 | 
						|
class SAEFailedViewController: UIViewController {
 | 
						|
 | 
						|
    weak var delegate: SAEFailedViewDelegate?
 | 
						|
 | 
						|
    let failureTitle: String
 | 
						|
    let failureMessage: String
 | 
						|
 | 
						|
    // MARK: Initializers and Factory Methods
 | 
						|
 | 
						|
    init(delegate: SAEFailedViewDelegate, title: String, message: String) {
 | 
						|
        self.delegate = delegate
 | 
						|
        self.failureTitle = title
 | 
						|
        self.failureMessage = message
 | 
						|
        super.init(nibName: nil, bundle: nil)
 | 
						|
    }
 | 
						|
 | 
						|
    @available(*, unavailable, message:"use other constructor instead.")
 | 
						|
    required init?(coder aDecoder: NSCoder) {
 | 
						|
        notImplemented()
 | 
						|
    }
 | 
						|
 | 
						|
    override func loadView() {
 | 
						|
        super.loadView()
 | 
						|
 | 
						|
        self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel,
 | 
						|
                                                                target: self,
 | 
						|
                                                                action: #selector(cancelPressed))
 | 
						|
        self.navigationItem.title = "Session"
 | 
						|
 | 
						|
        self.view.backgroundColor = UIColor.ows_signalBrandBlue
 | 
						|
 | 
						|
        let logoImage = UIImage(named: "logoSignal")
 | 
						|
        let logoImageView = UIImageView(image: logoImage)
 | 
						|
        self.view.addSubview(logoImageView)
 | 
						|
        logoImageView.autoCenterInSuperview()
 | 
						|
        let logoSize = CGFloat(120)
 | 
						|
        logoImageView.autoSetDimension(.width, toSize: logoSize)
 | 
						|
        logoImageView.autoSetDimension(.height, toSize: logoSize)
 | 
						|
 | 
						|
        let titleLabel = UILabel()
 | 
						|
        titleLabel.textColor = UIColor.white
 | 
						|
        titleLabel.font = UIFont.ows_mediumFont(withSize: 18)
 | 
						|
        titleLabel.text = failureTitle
 | 
						|
        titleLabel.textAlignment = .center
 | 
						|
        titleLabel.numberOfLines = 0
 | 
						|
        titleLabel.lineBreakMode = .byWordWrapping
 | 
						|
        self.view.addSubview(titleLabel)
 | 
						|
        titleLabel.autoPinEdge(toSuperviewEdge: .leading, withInset: 20)
 | 
						|
        titleLabel.autoPinEdge(toSuperviewEdge: .trailing, withInset: 20)
 | 
						|
        titleLabel.autoPinEdge(.top, to: .bottom, of: logoImageView, withOffset: 25)
 | 
						|
 | 
						|
        let messageLabel = UILabel()
 | 
						|
        messageLabel.textColor = UIColor.white
 | 
						|
        messageLabel.font = UIFont.ows_regularFont(withSize: 14)
 | 
						|
        messageLabel.text = failureMessage
 | 
						|
        messageLabel.textAlignment = .center
 | 
						|
        messageLabel.numberOfLines = 0
 | 
						|
        messageLabel.lineBreakMode = .byWordWrapping
 | 
						|
        self.view.addSubview(messageLabel)
 | 
						|
        messageLabel.autoPinEdge(toSuperviewEdge: .leading, withInset: 20)
 | 
						|
        messageLabel.autoPinEdge(toSuperviewEdge: .trailing, withInset: 20)
 | 
						|
        messageLabel.autoPinEdge(.top, to: .bottom, of: titleLabel, withOffset: 10)
 | 
						|
    }
 | 
						|
 | 
						|
    override func viewWillAppear(_ animated: Bool) {
 | 
						|
        super.viewWillAppear(animated)
 | 
						|
 | 
						|
        self.navigationController?.isNavigationBarHidden = false
 | 
						|
    }
 | 
						|
 | 
						|
    override func viewDidDisappear(_ animated: Bool) {
 | 
						|
        super.viewDidDisappear(animated)
 | 
						|
    }
 | 
						|
 | 
						|
    // MARK: - Event Handlers
 | 
						|
 | 
						|
    @objc func cancelPressed(sender: UIButton) {
 | 
						|
        guard let delegate = delegate else {
 | 
						|
            owsFailDebug("missing delegate")
 | 
						|
            return
 | 
						|
        }
 | 
						|
        delegate.shareViewWasCancelled()
 | 
						|
    }
 | 
						|
}
 |