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 Foundation
|
||||||
import VDS
|
import VDS
|
||||||
|
import UIKit
|
||||||
|
|
||||||
class LoaderViewController: BaseViewController<Loader> {
|
class LoaderViewController: BaseViewController<Loader>, LoaderLaunchable {
|
||||||
|
|
||||||
var isActive = Toggle().with { $0.isOn = true }
|
var isActive = Toggle().with { $0.isOn = true }
|
||||||
|
var isFullscreen = Toggle().with { $0.isOn = false }
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
@ -23,11 +25,30 @@ class LoaderViewController: BaseViewController<Loader> {
|
|||||||
super.setupForm()
|
super.setupForm()
|
||||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||||
addFormRow(label: "Active", view: .makeWrapper(for: isActive))
|
addFormRow(label: "Active", view: .makeWrapper(for: isActive))
|
||||||
|
addFormRow(label: "Fullscreen", view: .makeWrapper(for: isFullscreen))
|
||||||
|
|
||||||
isActive.publisher(for: .valueChanged)
|
isActive
|
||||||
|
.publisher(for: .valueChanged)
|
||||||
.sink { [weak self] toggle in
|
.sink { [weak self] toggle in
|
||||||
self?.component.isActive = toggle.isOn
|
self?.component.isActive = toggle.isOn
|
||||||
}.store(in: &subscribers)
|
}.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() {
|
func setupPicker() {
|
||||||
@ -36,4 +57,25 @@ class LoaderViewController: BaseViewController<Loader> {
|
|||||||
self?.contentTopView.backgroundColor = item.color
|
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