Kaynağa Gözat

Added initialization of JitsiMeetManager components

master
Daniel Ornelas 7 yıl önce
ebeveyn
işleme
a26ccf195e

+ 23
- 9
ios/sdk/src/JitsiMeetManager/JitsiMeetManager.swift Dosyayı Görüntüle

@@ -9,27 +9,39 @@ open class JitsiMeetManager: NSObject {
9 9
     /// Defines if welcome screen should be on
10 10
     public var welcomeScreenEnabled: Bool = false {
11 11
         didSet {
12
-            meetViewController.jitsiMeetView.welcomePageEnabled = welcomeScreenEnabled
12
+            meetViewController?.jitsiMeetView.welcomePageEnabled = welcomeScreenEnabled
13 13
         }
14 14
     }
15 15
     
16
-    fileprivate lazy var meetViewController: JitsiMeetViewController = { return self.makeMeetViewController() }()
17
-    fileprivate lazy var meetWindow: PiPWindow = { return self.makeMeetWindow() }()
16
+    private(set) var meetViewController: JitsiMeetViewController?
17
+    private(set) var meetWindow: PiPWindow?
18
+    
19
+    override public init() {
20
+        super.init()
21
+        self.meetViewController = makeMeetViewController()
22
+        self.meetWindow = makeMeetWindow()
23
+    }
24
+    
25
+    public init(meetViewController: JitsiMeetViewController? = nil, meetWindow: PiPWindow? = nil) {
26
+        super.init()
27
+        self.meetViewController = meetViewController ?? makeMeetViewController()
28
+        self.meetWindow = meetWindow ?? makeMeetWindow()
29
+    }
18 30
     
19 31
     /// Presents and loads a jitsi meet view
20 32
     ///
21 33
     /// - Parameter url: The url of the presentation
22 34
     public func load(withUrl url: URL?) {
23
-        meetWindow.show()
24
-        meetViewController.jitsiMeetView.load(url)
35
+        meetWindow?.show()
36
+        meetViewController?.jitsiMeetView.load(url)
25 37
     }
26 38
     
27 39
     /// Presents and loads a jitsi meet view with configuration
28 40
     ///
29 41
     /// - Parameter urlObject: A dictionary of keys to be used for configuration
30 42
     public func load(withUrlObject urlObject: [AnyHashable : Any]?) {
31
-        meetWindow.show()
32
-        meetViewController.jitsiMeetView.loadURLObject(urlObject)
43
+        meetWindow?.show()
44
+        meetViewController?.jitsiMeetView.loadURLObject(urlObject)
33 45
     }
34 46
     
35 47
     deinit {
@@ -41,8 +53,8 @@ open class JitsiMeetManager: NSObject {
41 53
     fileprivate func cleanUp() {
42 54
         // TODO: more clean up work on this
43 55
         
44
-        meetWindow.isHidden = true
45
-        meetWindow.stopDragGesture()
56
+        meetWindow?.isHidden = true
57
+        meetWindow?.stopDragGesture()
46 58
     }
47 59
     
48 60
     private func makeMeetViewController() -> JitsiMeetViewController {
@@ -65,6 +77,8 @@ open class JitsiMeetManager: NSObject {
65 77
 extension JitsiMeetManager: JitsiMeetViewControllerDelegate {
66 78
     
67 79
     open func performPresentationUpdate(to: JitsiMeetPresentationUpdate) {
80
+        guard let meetWindow = self.meetWindow else { return }
81
+        
68 82
         switch to {
69 83
         case .enterPiP:
70 84
             meetWindow.goToPiP()

+ 1
- 1
ios/sdk/src/JitsiMeetManager/JitsiMeetViewController.swift Dosyayı Görüntüle

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

Loading…
İptal
Kaydet