added fullscreen
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
92521eca74
commit
0aae405bb8
@ -7,10 +7,12 @@
|
||||
|
||||
import Foundation
|
||||
import VDS
|
||||
import UIKit
|
||||
|
||||
class LoaderViewController: BaseViewController<Loader> {
|
||||
class LoaderViewController: BaseViewController<Loader>, LoaderLaunchable {
|
||||
|
||||
var isActive = Toggle().with { $0.isOn = true }
|
||||
var isFullscreen = Toggle().with { $0.isOn = false }
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@ -23,11 +25,30 @@ class LoaderViewController: BaseViewController<Loader> {
|
||||
super.setupForm()
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Active", view: .makeWrapper(for: isActive))
|
||||
|
||||
isActive.publisher(for: .valueChanged)
|
||||
addFormRow(label: "Fullscreen", view: .makeWrapper(for: isFullscreen))
|
||||
|
||||
isActive
|
||||
.publisher(for: .valueChanged)
|
||||
.sink { [weak self] toggle in
|
||||
self?.component.isActive = toggle.isOn
|
||||
}.store(in: &subscribers)
|
||||
|
||||
isFullscreen
|
||||
.publisher(for: .valueChanged)
|
||||
.sink { [weak self] toggle in
|
||||
guard let self else { return }
|
||||
self.showLoader(fullScreen: toggle.isOn)
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
|
||||
func showLoader(fullScreen: Bool) {
|
||||
if fullScreen {
|
||||
component.isHidden = true
|
||||
presentLoader(surface: self.component.surface)
|
||||
} else {
|
||||
dismissLoader()
|
||||
component.isHidden = false
|
||||
}
|
||||
}
|
||||
|
||||
func setupPicker() {
|
||||
@ -36,4 +57,25 @@ class LoaderViewController: BaseViewController<Loader> {
|
||||
self?.contentTopView.backgroundColor = item.color
|
||||
}
|
||||
}
|
||||
|
||||
public func presentLoader(surface: Surface, size: Int? = nil) {
|
||||
if let presenting = UIApplication.topViewController() {
|
||||
let viewController = VDS.LoaderViewController(nibName: nil, bundle: nil).with {
|
||||
$0.surface = surface
|
||||
if let size {
|
||||
$0.size = size
|
||||
}
|
||||
$0.modalPresentationStyle = .overFullScreen
|
||||
$0.modalTransitionStyle = .crossDissolve
|
||||
}
|
||||
viewController.view
|
||||
.publisher(for: UITapGestureRecognizer())
|
||||
.sink {[weak self] tap in
|
||||
guard let self else { return }
|
||||
self.isFullscreen.isOn = false
|
||||
self.showLoader(fullScreen: false)
|
||||
}.store(in: &subscribers)
|
||||
presenting.present(viewController, animated: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user