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.
		
		
		
		
		
			
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Swift
		
	
//
 | 
						|
//  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
import UIKit
 | 
						|
import PureLayout
 | 
						|
 | 
						|
class SAELoadViewController: UIViewController {
 | 
						|
 | 
						|
    weak var delegate: ShareViewDelegate?
 | 
						|
 | 
						|
    var activityIndicator: UIActivityIndicatorView!
 | 
						|
    var progressView: UIProgressView!
 | 
						|
 | 
						|
    var progress: Progress? {
 | 
						|
        didSet {
 | 
						|
            guard progressView != nil else {
 | 
						|
                return
 | 
						|
            }
 | 
						|
 | 
						|
            updateProgressViewVisability()
 | 
						|
            progressView.observedProgress = progress
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    func updateProgressViewVisability() {
 | 
						|
        guard progressView != nil, activityIndicator != nil else {
 | 
						|
            return
 | 
						|
        }
 | 
						|
 | 
						|
        // Prefer to show progress view when progress is present
 | 
						|
        if self.progress == nil {
 | 
						|
            activityIndicator.startAnimating()
 | 
						|
            self.progressView.isHidden = true
 | 
						|
            self.activityIndicator.isHidden = false
 | 
						|
        } else {
 | 
						|
            activityIndicator.stopAnimating()
 | 
						|
            self.progressView.isHidden = false
 | 
						|
            self.activityIndicator.isHidden = true
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    // MARK: Initializers and Factory Methods
 | 
						|
 | 
						|
    init(delegate: ShareViewDelegate) {
 | 
						|
        self.delegate = delegate
 | 
						|
        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 activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
 | 
						|
        self.activityIndicator = activityIndicator
 | 
						|
        self.view.addSubview(activityIndicator)
 | 
						|
        activityIndicator.autoCenterInSuperview()
 | 
						|
 | 
						|
        progressView = UIProgressView(progressViewStyle: .default)
 | 
						|
        progressView.observedProgress = progress
 | 
						|
 | 
						|
        self.view.addSubview(progressView)
 | 
						|
        progressView.autoVCenterInSuperview()
 | 
						|
        progressView.autoPinWidthToSuperview(withMargin: ScaleFromIPhone5(30))
 | 
						|
        progressView.progressTintColor = UIColor.white
 | 
						|
 | 
						|
        updateProgressViewVisability()
 | 
						|
 | 
						|
        let label = UILabel()
 | 
						|
        label.textColor = UIColor.white
 | 
						|
        label.font = UIFont.ows_mediumFont(withSize: 18)
 | 
						|
        label.text = NSLocalizedString("SHARE_EXTENSION_LOADING",
 | 
						|
                                       comment: "Indicates that the share extension is still loading.")
 | 
						|
        self.view.addSubview(label)
 | 
						|
        label.autoHCenterInSuperview()
 | 
						|
        label.autoPinEdge(.top, to: .bottom, of: activityIndicator, withOffset: 25)
 | 
						|
    }
 | 
						|
 | 
						|
    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()
 | 
						|
    }
 | 
						|
}
 |