// // ActivityIndicator.swift // Learn Genie // // Created by Suraj Kumar Mandal on 31/08/21. // import UIKit import Foundation class ActivityIndicator: UIViewController { internal static var spinner: UIActivityIndicatorView? public static var style: UIActivityIndicatorView.Style = .large public static var baseBackColor = UIColor.black.withAlphaComponent(0.5) public static var baseColor = UIColor.red public static func start(style: UIActivityIndicatorView.Style = style, backColor: UIColor = baseBackColor, baseColor: UIColor = baseColor) { NotificationCenter.default.addObserver(self, selector: #selector(update), name: UIDevice.orientationDidChangeNotification, object: nil) if spinner == nil, let window = UIWindow.key { let frame = UIScreen.main.bounds spinner = UIActivityIndicatorView(frame: frame) spinner!.backgroundColor = backColor spinner!.style = style spinner?.color = baseColor window.addSubview(spinner!) spinner!.startAnimating() } } public static func stop() { if spinner != nil { spinner!.stopAnimating() spinner!.removeFromSuperview() spinner = nil } } @objc public static func update() { if spinner != nil { stop() start() } } }