Added initialization of JitsiMeetManager components

This commit is contained in:
Daniel Ornelas 2018-03-09 11:37:13 -06:00 committed by Lyubo Marinov
parent 0a5f60c637
commit a26ccf195e
2 changed files with 24 additions and 10 deletions

View File

@ -9,27 +9,39 @@ open class JitsiMeetManager: NSObject {
/// Defines if welcome screen should be on /// Defines if welcome screen should be on
public var welcomeScreenEnabled: Bool = false { public var welcomeScreenEnabled: Bool = false {
didSet { didSet {
meetViewController.jitsiMeetView.welcomePageEnabled = welcomeScreenEnabled meetViewController?.jitsiMeetView.welcomePageEnabled = welcomeScreenEnabled
} }
} }
fileprivate lazy var meetViewController: JitsiMeetViewController = { return self.makeMeetViewController() }() private(set) var meetViewController: JitsiMeetViewController?
fileprivate lazy var meetWindow: PiPWindow = { return self.makeMeetWindow() }() private(set) var meetWindow: PiPWindow?
override public init() {
super.init()
self.meetViewController = makeMeetViewController()
self.meetWindow = makeMeetWindow()
}
public init(meetViewController: JitsiMeetViewController? = nil, meetWindow: PiPWindow? = nil) {
super.init()
self.meetViewController = meetViewController ?? makeMeetViewController()
self.meetWindow = meetWindow ?? makeMeetWindow()
}
/// Presents and loads a jitsi meet view /// Presents and loads a jitsi meet view
/// ///
/// - Parameter url: The url of the presentation /// - Parameter url: The url of the presentation
public func load(withUrl url: URL?) { public func load(withUrl url: URL?) {
meetWindow.show() meetWindow?.show()
meetViewController.jitsiMeetView.load(url) meetViewController?.jitsiMeetView.load(url)
} }
/// Presents and loads a jitsi meet view with configuration /// Presents and loads a jitsi meet view with configuration
/// ///
/// - Parameter urlObject: A dictionary of keys to be used for configuration /// - Parameter urlObject: A dictionary of keys to be used for configuration
public func load(withUrlObject urlObject: [AnyHashable : Any]?) { public func load(withUrlObject urlObject: [AnyHashable : Any]?) {
meetWindow.show() meetWindow?.show()
meetViewController.jitsiMeetView.loadURLObject(urlObject) meetViewController?.jitsiMeetView.loadURLObject(urlObject)
} }
deinit { deinit {
@ -41,8 +53,8 @@ open class JitsiMeetManager: NSObject {
fileprivate func cleanUp() { fileprivate func cleanUp() {
// TODO: more clean up work on this // TODO: more clean up work on this
meetWindow.isHidden = true meetWindow?.isHidden = true
meetWindow.stopDragGesture() meetWindow?.stopDragGesture()
} }
private func makeMeetViewController() -> JitsiMeetViewController { private func makeMeetViewController() -> JitsiMeetViewController {
@ -65,6 +77,8 @@ open class JitsiMeetManager: NSObject {
extension JitsiMeetManager: JitsiMeetViewControllerDelegate { extension JitsiMeetManager: JitsiMeetViewControllerDelegate {
open func performPresentationUpdate(to: JitsiMeetPresentationUpdate) { open func performPresentationUpdate(to: JitsiMeetPresentationUpdate) {
guard let meetWindow = self.meetWindow else { return }
switch to { switch to {
case .enterPiP: case .enterPiP:
meetWindow.goToPiP() meetWindow.goToPiP()

View File

@ -78,7 +78,7 @@ extension JitsiMeetViewController: JitsiMeetViewDelegate {
open func enterPicture(inPicture data: [AnyHashable : Any]!) { open func enterPicture(inPicture data: [AnyHashable : Any]!) {
DispatchQueue.main.async { DispatchQueue.main.async {
self.delegate?.performPresentationUpdate(to: .enterPiP) self.delegate?.performPresentationUpdate(to: .enterPiP)
} }
} }
} }