Browse Source

Initial work for testing PiP mode

master
Daniel Ornelas 7 years ago
parent
commit
181580871f

+ 392
- 0
ios/example-pip-app/PiPApp.xcodeproj/project.pbxproj View File

@@ -0,0 +1,392 @@
1
+// !$*UTF8*$!
2
+{
3
+	archiveVersion = 1;
4
+	classes = {
5
+	};
6
+	objectVersion = 48;
7
+	objects = {
8
+
9
+/* Begin PBXBuildFile section */
10
+		C6A34249204DF18000E062DD /* WebRTC.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C6A34247204DF18000E062DD /* WebRTC.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
11
+		C6A3424C204DF98E00E062DD /* JitsiViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6A3424B204DF98E00E062DD /* JitsiViewController.swift */; };
12
+		C6F99C3B204DE6BE0001F710 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F99C3A204DE6BE0001F710 /* AppDelegate.swift */; };
13
+		C6F99C3D204DE6BE0001F710 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F99C3C204DE6BE0001F710 /* ViewController.swift */; };
14
+		C6F99C40204DE6BE0001F710 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C6F99C3E204DE6BE0001F710 /* Main.storyboard */; };
15
+		C6F99C42204DE6BE0001F710 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C6F99C41204DE6BE0001F710 /* Assets.xcassets */; };
16
+		C6F99C45204DE6BE0001F710 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C6F99C43204DE6BE0001F710 /* LaunchScreen.storyboard */; };
17
+		C6F99C60204DEDC10001F710 /* JitsiMeet.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C6F99C4F204DE79F0001F710 /* JitsiMeet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18
+/* End PBXBuildFile section */
19
+
20
+/* Begin PBXCopyFilesBuildPhase section */
21
+		C6F99C61204DEDC20001F710 /* Embed Frameworks */ = {
22
+			isa = PBXCopyFilesBuildPhase;
23
+			buildActionMask = 2147483647;
24
+			dstPath = "";
25
+			dstSubfolderSpec = 10;
26
+			files = (
27
+				C6F99C60204DEDC10001F710 /* JitsiMeet.framework in Embed Frameworks */,
28
+				C6A34249204DF18000E062DD /* WebRTC.framework in Embed Frameworks */,
29
+			);
30
+			name = "Embed Frameworks";
31
+			runOnlyForDeploymentPostprocessing = 0;
32
+		};
33
+/* End PBXCopyFilesBuildPhase section */
34
+
35
+/* Begin PBXFileReference section */
36
+		C6A34247204DF18000E062DD /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = "../../node_modules/react-native-webrtc/ios/WebRTC.framework"; sourceTree = "<group>"; };
37
+		C6A3424B204DF98E00E062DD /* JitsiViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JitsiViewController.swift; sourceTree = "<group>"; };
38
+		C6F99C37204DE6BE0001F710 /* PiPApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PiPApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
39
+		C6F99C3A204DE6BE0001F710 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
40
+		C6F99C3C204DE6BE0001F710 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
41
+		C6F99C3F204DE6BE0001F710 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
42
+		C6F99C41204DE6BE0001F710 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
43
+		C6F99C44204DE6BE0001F710 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
44
+		C6F99C46204DE6BE0001F710 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
45
+		C6F99C4F204DE79F0001F710 /* JitsiMeet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = JitsiMeet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
46
+/* End PBXFileReference section */
47
+
48
+/* Begin PBXFrameworksBuildPhase section */
49
+		C6F99C34204DE6BE0001F710 /* Frameworks */ = {
50
+			isa = PBXFrameworksBuildPhase;
51
+			buildActionMask = 2147483647;
52
+			files = (
53
+			);
54
+			runOnlyForDeploymentPostprocessing = 0;
55
+		};
56
+/* End PBXFrameworksBuildPhase section */
57
+
58
+/* Begin PBXGroup section */
59
+		C6F99C2E204DE6BE0001F710 = {
60
+			isa = PBXGroup;
61
+			children = (
62
+				C6F99C4D204DE79F0001F710 /* Frameworks */,
63
+				C6F99C38204DE6BE0001F710 /* Products */,
64
+				C6F99C4C204DE7230001F710 /* src */,
65
+			);
66
+			sourceTree = "<group>";
67
+		};
68
+		C6F99C38204DE6BE0001F710 /* Products */ = {
69
+			isa = PBXGroup;
70
+			children = (
71
+				C6F99C37204DE6BE0001F710 /* PiPApp.app */,
72
+			);
73
+			name = Products;
74
+			sourceTree = "<group>";
75
+		};
76
+		C6F99C4C204DE7230001F710 /* src */ = {
77
+			isa = PBXGroup;
78
+			children = (
79
+				C6F99C3A204DE6BE0001F710 /* AppDelegate.swift */,
80
+				C6F99C3C204DE6BE0001F710 /* ViewController.swift */,
81
+				C6A3424B204DF98E00E062DD /* JitsiViewController.swift */,
82
+				C6F99C3E204DE6BE0001F710 /* Main.storyboard */,
83
+				C6F99C41204DE6BE0001F710 /* Assets.xcassets */,
84
+				C6F99C43204DE6BE0001F710 /* LaunchScreen.storyboard */,
85
+				C6F99C46204DE6BE0001F710 /* Info.plist */,
86
+			);
87
+			path = src;
88
+			sourceTree = "<group>";
89
+		};
90
+		C6F99C4D204DE79F0001F710 /* Frameworks */ = {
91
+			isa = PBXGroup;
92
+			children = (
93
+				C6F99C4F204DE79F0001F710 /* JitsiMeet.framework */,
94
+				C6A34247204DF18000E062DD /* WebRTC.framework */,
95
+			);
96
+			name = Frameworks;
97
+			sourceTree = "<group>";
98
+		};
99
+/* End PBXGroup section */
100
+
101
+/* Begin PBXNativeTarget section */
102
+		C6F99C36204DE6BE0001F710 /* PiPApp */ = {
103
+			isa = PBXNativeTarget;
104
+			buildConfigurationList = C6F99C49204DE6BE0001F710 /* Build configuration list for PBXNativeTarget "PiPApp" */;
105
+			buildPhases = (
106
+				C6F99C33204DE6BE0001F710 /* Sources */,
107
+				C6F99C34204DE6BE0001F710 /* Frameworks */,
108
+				C6F99C61204DEDC20001F710 /* Embed Frameworks */,
109
+				C6F99C35204DE6BE0001F710 /* Resources */,
110
+				C6F99C62204DEFFE0001F710 /* Run React Packager */,
111
+				C6A3424A204DF91D00E062DD /* Run Adjust ATS for loading JS bundle */,
112
+			);
113
+			buildRules = (
114
+			);
115
+			dependencies = (
116
+			);
117
+			name = PiPApp;
118
+			productName = ExampleAppUsingJitsiWithPiP;
119
+			productReference = C6F99C37204DE6BE0001F710 /* PiPApp.app */;
120
+			productType = "com.apple.product-type.application";
121
+		};
122
+/* End PBXNativeTarget section */
123
+
124
+/* Begin PBXProject section */
125
+		C6F99C2F204DE6BE0001F710 /* Project object */ = {
126
+			isa = PBXProject;
127
+			attributes = {
128
+				LastSwiftUpdateCheck = 0920;
129
+				LastUpgradeCheck = 0920;
130
+				ORGANIZATIONNAME = "Atlassian Inc";
131
+				TargetAttributes = {
132
+					C6F99C36204DE6BE0001F710 = {
133
+						CreatedOnToolsVersion = 9.2;
134
+						ProvisioningStyle = Automatic;
135
+					};
136
+				};
137
+			};
138
+			buildConfigurationList = C6F99C32204DE6BE0001F710 /* Build configuration list for PBXProject "PiPApp" */;
139
+			compatibilityVersion = "Xcode 8.0";
140
+			developmentRegion = en;
141
+			hasScannedForEncodings = 0;
142
+			knownRegions = (
143
+				en,
144
+				Base,
145
+			);
146
+			mainGroup = C6F99C2E204DE6BE0001F710;
147
+			productRefGroup = C6F99C38204DE6BE0001F710 /* Products */;
148
+			projectDirPath = "";
149
+			projectRoot = "";
150
+			targets = (
151
+				C6F99C36204DE6BE0001F710 /* PiPApp */,
152
+			);
153
+		};
154
+/* End PBXProject section */
155
+
156
+/* Begin PBXResourcesBuildPhase section */
157
+		C6F99C35204DE6BE0001F710 /* Resources */ = {
158
+			isa = PBXResourcesBuildPhase;
159
+			buildActionMask = 2147483647;
160
+			files = (
161
+				C6F99C45204DE6BE0001F710 /* LaunchScreen.storyboard in Resources */,
162
+				C6F99C42204DE6BE0001F710 /* Assets.xcassets in Resources */,
163
+				C6F99C40204DE6BE0001F710 /* Main.storyboard in Resources */,
164
+			);
165
+			runOnlyForDeploymentPostprocessing = 0;
166
+		};
167
+/* End PBXResourcesBuildPhase section */
168
+
169
+/* Begin PBXShellScriptBuildPhase section */
170
+		C6A3424A204DF91D00E062DD /* Run Adjust ATS for loading JS bundle */ = {
171
+			isa = PBXShellScriptBuildPhase;
172
+			buildActionMask = 2147483647;
173
+			files = (
174
+			);
175
+			inputPaths = (
176
+			);
177
+			name = "Run Adjust ATS for loading JS bundle";
178
+			outputPaths = (
179
+			);
180
+			runOnlyForDeploymentPostprocessing = 0;
181
+			shellPath = /bin/sh;
182
+			shellScript = "../scripts/fixup-ats.sh";
183
+		};
184
+		C6F99C62204DEFFE0001F710 /* Run React Packager */ = {
185
+			isa = PBXShellScriptBuildPhase;
186
+			buildActionMask = 2147483647;
187
+			files = (
188
+			);
189
+			inputPaths = (
190
+			);
191
+			name = "Run React Packager";
192
+			outputPaths = (
193
+			);
194
+			runOnlyForDeploymentPostprocessing = 0;
195
+			shellPath = /bin/sh;
196
+			shellScript = "../scripts/run-packager.sh";
197
+		};
198
+/* End PBXShellScriptBuildPhase section */
199
+
200
+/* Begin PBXSourcesBuildPhase section */
201
+		C6F99C33204DE6BE0001F710 /* Sources */ = {
202
+			isa = PBXSourcesBuildPhase;
203
+			buildActionMask = 2147483647;
204
+			files = (
205
+				C6F99C3D204DE6BE0001F710 /* ViewController.swift in Sources */,
206
+				C6F99C3B204DE6BE0001F710 /* AppDelegate.swift in Sources */,
207
+				C6A3424C204DF98E00E062DD /* JitsiViewController.swift in Sources */,
208
+			);
209
+			runOnlyForDeploymentPostprocessing = 0;
210
+		};
211
+/* End PBXSourcesBuildPhase section */
212
+
213
+/* Begin PBXVariantGroup section */
214
+		C6F99C3E204DE6BE0001F710 /* Main.storyboard */ = {
215
+			isa = PBXVariantGroup;
216
+			children = (
217
+				C6F99C3F204DE6BE0001F710 /* Base */,
218
+			);
219
+			name = Main.storyboard;
220
+			sourceTree = "<group>";
221
+		};
222
+		C6F99C43204DE6BE0001F710 /* LaunchScreen.storyboard */ = {
223
+			isa = PBXVariantGroup;
224
+			children = (
225
+				C6F99C44204DE6BE0001F710 /* Base */,
226
+			);
227
+			name = LaunchScreen.storyboard;
228
+			sourceTree = "<group>";
229
+		};
230
+/* End PBXVariantGroup section */
231
+
232
+/* Begin XCBuildConfiguration section */
233
+		C6F99C47204DE6BE0001F710 /* Debug */ = {
234
+			isa = XCBuildConfiguration;
235
+			buildSettings = {
236
+				ALWAYS_SEARCH_USER_PATHS = NO;
237
+				CLANG_ANALYZER_NONNULL = YES;
238
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
239
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
240
+				CLANG_CXX_LIBRARY = "libc++";
241
+				CLANG_ENABLE_MODULES = YES;
242
+				CLANG_ENABLE_OBJC_ARC = YES;
243
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
244
+				CLANG_WARN_BOOL_CONVERSION = YES;
245
+				CLANG_WARN_COMMA = YES;
246
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
247
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
248
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
249
+				CLANG_WARN_EMPTY_BODY = YES;
250
+				CLANG_WARN_ENUM_CONVERSION = YES;
251
+				CLANG_WARN_INFINITE_RECURSION = YES;
252
+				CLANG_WARN_INT_CONVERSION = YES;
253
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
254
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
255
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
256
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
257
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
258
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
259
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
260
+				CLANG_WARN_UNREACHABLE_CODE = YES;
261
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
262
+				CODE_SIGN_IDENTITY = "iPhone Developer";
263
+				COPY_PHASE_STRIP = NO;
264
+				DEBUG_INFORMATION_FORMAT = dwarf;
265
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
266
+				ENABLE_TESTABILITY = YES;
267
+				GCC_C_LANGUAGE_STANDARD = gnu11;
268
+				GCC_DYNAMIC_NO_PIC = NO;
269
+				GCC_NO_COMMON_BLOCKS = YES;
270
+				GCC_OPTIMIZATION_LEVEL = 0;
271
+				GCC_PREPROCESSOR_DEFINITIONS = (
272
+					"DEBUG=1",
273
+					"$(inherited)",
274
+				);
275
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
276
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
277
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
278
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
279
+				GCC_WARN_UNUSED_FUNCTION = YES;
280
+				GCC_WARN_UNUSED_VARIABLE = YES;
281
+				IPHONEOS_DEPLOYMENT_TARGET = 11.2;
282
+				MTL_ENABLE_DEBUG_INFO = YES;
283
+				ONLY_ACTIVE_ARCH = YES;
284
+				SDKROOT = iphoneos;
285
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
286
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
287
+			};
288
+			name = Debug;
289
+		};
290
+		C6F99C48204DE6BE0001F710 /* Release */ = {
291
+			isa = XCBuildConfiguration;
292
+			buildSettings = {
293
+				ALWAYS_SEARCH_USER_PATHS = NO;
294
+				CLANG_ANALYZER_NONNULL = YES;
295
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
296
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
297
+				CLANG_CXX_LIBRARY = "libc++";
298
+				CLANG_ENABLE_MODULES = YES;
299
+				CLANG_ENABLE_OBJC_ARC = YES;
300
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
301
+				CLANG_WARN_BOOL_CONVERSION = YES;
302
+				CLANG_WARN_COMMA = YES;
303
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
304
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
305
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
306
+				CLANG_WARN_EMPTY_BODY = YES;
307
+				CLANG_WARN_ENUM_CONVERSION = YES;
308
+				CLANG_WARN_INFINITE_RECURSION = YES;
309
+				CLANG_WARN_INT_CONVERSION = YES;
310
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
311
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
312
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
313
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
314
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
315
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
316
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
317
+				CLANG_WARN_UNREACHABLE_CODE = YES;
318
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
319
+				CODE_SIGN_IDENTITY = "iPhone Developer";
320
+				COPY_PHASE_STRIP = NO;
321
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
322
+				ENABLE_NS_ASSERTIONS = NO;
323
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
324
+				GCC_C_LANGUAGE_STANDARD = gnu11;
325
+				GCC_NO_COMMON_BLOCKS = YES;
326
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
327
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
328
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
329
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
330
+				GCC_WARN_UNUSED_FUNCTION = YES;
331
+				GCC_WARN_UNUSED_VARIABLE = YES;
332
+				IPHONEOS_DEPLOYMENT_TARGET = 11.2;
333
+				MTL_ENABLE_DEBUG_INFO = NO;
334
+				SDKROOT = iphoneos;
335
+				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
336
+				VALIDATE_PRODUCT = YES;
337
+			};
338
+			name = Release;
339
+		};
340
+		C6F99C4A204DE6BE0001F710 /* Debug */ = {
341
+			isa = XCBuildConfiguration;
342
+			buildSettings = {
343
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
344
+				CODE_SIGN_STYLE = Automatic;
345
+				INFOPLIST_FILE = src/Info.plist;
346
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
347
+				PRODUCT_BUNDLE_IDENTIFIER = com.jitsi.PiPApp;
348
+				PRODUCT_NAME = "$(TARGET_NAME)";
349
+				SWIFT_VERSION = 4.0;
350
+				TARGETED_DEVICE_FAMILY = "1,2";
351
+			};
352
+			name = Debug;
353
+		};
354
+		C6F99C4B204DE6BE0001F710 /* Release */ = {
355
+			isa = XCBuildConfiguration;
356
+			buildSettings = {
357
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
358
+				CODE_SIGN_STYLE = Automatic;
359
+				INFOPLIST_FILE = src/Info.plist;
360
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
361
+				PRODUCT_BUNDLE_IDENTIFIER = com.jitsi.PiPApp;
362
+				PRODUCT_NAME = "$(TARGET_NAME)";
363
+				SWIFT_VERSION = 4.0;
364
+				TARGETED_DEVICE_FAMILY = "1,2";
365
+			};
366
+			name = Release;
367
+		};
368
+/* End XCBuildConfiguration section */
369
+
370
+/* Begin XCConfigurationList section */
371
+		C6F99C32204DE6BE0001F710 /* Build configuration list for PBXProject "PiPApp" */ = {
372
+			isa = XCConfigurationList;
373
+			buildConfigurations = (
374
+				C6F99C47204DE6BE0001F710 /* Debug */,
375
+				C6F99C48204DE6BE0001F710 /* Release */,
376
+			);
377
+			defaultConfigurationIsVisible = 0;
378
+			defaultConfigurationName = Release;
379
+		};
380
+		C6F99C49204DE6BE0001F710 /* Build configuration list for PBXNativeTarget "PiPApp" */ = {
381
+			isa = XCConfigurationList;
382
+			buildConfigurations = (
383
+				C6F99C4A204DE6BE0001F710 /* Debug */,
384
+				C6F99C4B204DE6BE0001F710 /* Release */,
385
+			);
386
+			defaultConfigurationIsVisible = 0;
387
+			defaultConfigurationName = Release;
388
+		};
389
+/* End XCConfigurationList section */
390
+	};
391
+	rootObject = C6F99C2F204DE6BE0001F710 /* Project object */;
392
+}

+ 35
- 0
ios/example-pip-app/src/AppDelegate.swift View File

@@ -0,0 +1,35 @@
1
+//
2
+//  AppDelegate.swift
3
+//  ExampleAppUsingJitsiWithPiP
4
+//
5
+//  Created by Daniel Ornelas on 3/5/18.
6
+//  Copyright © 2018 Atlassian Inc. All rights reserved.
7
+//
8
+
9
+import JitsiMeet
10
+
11
+@UIApplicationMain
12
+class AppDelegate: UIResponder, UIApplicationDelegate {
13
+
14
+    var window: UIWindow?
15
+    
16
+    func application(_ application: UIApplication,
17
+                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
18
+        guard let launchOptions = launchOptions else { return false }
19
+        return JitsiMeetView.application(application, didFinishLaunchingWithOptions: launchOptions)
20
+    }
21
+    
22
+    // MARK: - Linking delegate methods
23
+    
24
+    func application(_ application: UIApplication,
25
+                     continue userActivity: NSUserActivity,
26
+                     restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
27
+        return JitsiMeetView.application(application, continue: userActivity, restorationHandler: restorationHandler)
28
+    }
29
+    
30
+    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
31
+        return JitsiMeetView.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
32
+    }
33
+
34
+}
35
+

+ 98
- 0
ios/example-pip-app/src/Assets.xcassets/AppIcon.appiconset/Contents.json View File

@@ -0,0 +1,98 @@
1
+{
2
+  "images" : [
3
+    {
4
+      "idiom" : "iphone",
5
+      "size" : "20x20",
6
+      "scale" : "2x"
7
+    },
8
+    {
9
+      "idiom" : "iphone",
10
+      "size" : "20x20",
11
+      "scale" : "3x"
12
+    },
13
+    {
14
+      "idiom" : "iphone",
15
+      "size" : "29x29",
16
+      "scale" : "2x"
17
+    },
18
+    {
19
+      "idiom" : "iphone",
20
+      "size" : "29x29",
21
+      "scale" : "3x"
22
+    },
23
+    {
24
+      "idiom" : "iphone",
25
+      "size" : "40x40",
26
+      "scale" : "2x"
27
+    },
28
+    {
29
+      "idiom" : "iphone",
30
+      "size" : "40x40",
31
+      "scale" : "3x"
32
+    },
33
+    {
34
+      "idiom" : "iphone",
35
+      "size" : "60x60",
36
+      "scale" : "2x"
37
+    },
38
+    {
39
+      "idiom" : "iphone",
40
+      "size" : "60x60",
41
+      "scale" : "3x"
42
+    },
43
+    {
44
+      "idiom" : "ipad",
45
+      "size" : "20x20",
46
+      "scale" : "1x"
47
+    },
48
+    {
49
+      "idiom" : "ipad",
50
+      "size" : "20x20",
51
+      "scale" : "2x"
52
+    },
53
+    {
54
+      "idiom" : "ipad",
55
+      "size" : "29x29",
56
+      "scale" : "1x"
57
+    },
58
+    {
59
+      "idiom" : "ipad",
60
+      "size" : "29x29",
61
+      "scale" : "2x"
62
+    },
63
+    {
64
+      "idiom" : "ipad",
65
+      "size" : "40x40",
66
+      "scale" : "1x"
67
+    },
68
+    {
69
+      "idiom" : "ipad",
70
+      "size" : "40x40",
71
+      "scale" : "2x"
72
+    },
73
+    {
74
+      "idiom" : "ipad",
75
+      "size" : "76x76",
76
+      "scale" : "1x"
77
+    },
78
+    {
79
+      "idiom" : "ipad",
80
+      "size" : "76x76",
81
+      "scale" : "2x"
82
+    },
83
+    {
84
+      "idiom" : "ipad",
85
+      "size" : "83.5x83.5",
86
+      "scale" : "2x"
87
+    },
88
+    {
89
+      "idiom" : "ios-marketing",
90
+      "size" : "1024x1024",
91
+      "scale" : "1x"
92
+    }
93
+  ],
94
+  "info" : {
95
+    "version" : 1,
96
+    "author" : "xcode"
97
+  }
98
+}

+ 25
- 0
ios/example-pip-app/src/Base.lproj/LaunchScreen.storyboard View File

@@ -0,0 +1,25 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" systemVersion="17A277" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
3
+    <dependencies>
4
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
5
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
6
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7
+    </dependencies>
8
+    <scenes>
9
+        <!--View Controller-->
10
+        <scene sceneID="EHf-IW-A2E">
11
+            <objects>
12
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
13
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
14
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
15
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
16
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
17
+                        <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
18
+                    </view>
19
+                </viewController>
20
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
21
+            </objects>
22
+            <point key="canvasLocation" x="53" y="375"/>
23
+        </scene>
24
+    </scenes>
25
+</document>

+ 60
- 0
ios/example-pip-app/src/Base.lproj/Main.storyboard View File

@@ -0,0 +1,60 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
3
+    <device id="retina4_7" orientation="portrait">
4
+        <adaptation id="fullscreen"/>
5
+    </device>
6
+    <dependencies>
7
+        <deployment identifier="iOS"/>
8
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
9
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
10
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11
+    </dependencies>
12
+    <scenes>
13
+        <!--View Controller-->
14
+        <scene sceneID="tne-QT-ifu">
15
+            <objects>
16
+                <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="PiPApp" customModuleProvider="target" sceneMemberID="viewController">
17
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
18
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
19
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
20
+                        <subviews>
21
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QxY-C8-fwD">
22
+                                <rect key="frame" x="144.5" y="324.5" width="86" height="38"/>
23
+                                <fontDescription key="fontDescription" type="system" pointSize="21"/>
24
+                                <state key="normal" title="Start Jitsi"/>
25
+                                <connections>
26
+                                    <action selector="startMeetingWithSender:" destination="BYZ-38-t0r" eventType="touchUpInside" id="79C-XR-05w"/>
27
+                                </connections>
28
+                            </button>
29
+                        </subviews>
30
+                        <constraints>
31
+                            <constraint firstItem="QxY-C8-fwD" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="6a6-l1-7Ct"/>
32
+                            <constraint firstItem="QxY-C8-fwD" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" id="Hfg-TH-0g2"/>
33
+                        </constraints>
34
+                        <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
35
+                    </view>
36
+                    <connections>
37
+                        <outlet property="videoButton" destination="QxY-C8-fwD" id="Zwa-Hx-Zub"/>
38
+                    </connections>
39
+                </viewController>
40
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
41
+            </objects>
42
+            <point key="canvasLocation" x="32.799999999999997" y="658.92053973013503"/>
43
+        </scene>
44
+        <!--JitsiViewController-->
45
+        <scene sceneID="V5C-nQ-uqb">
46
+            <objects>
47
+                <viewController id="B84-hY-B21" userLabel="JitsiViewController" customClass="JitsiViewController" customModule="PiPApp" customModuleProvider="target" sceneMemberID="viewController">
48
+                    <view key="view" contentMode="scaleToFill" id="nMf-dX-t08" customClass="JitsiMeetView">
49
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
50
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
51
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
52
+                        <viewLayoutGuide key="safeArea" id="W4q-U5-6O5"/>
53
+                    </view>
54
+                </viewController>
55
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Zdh-Kt-gVo" userLabel="First Responder" sceneMemberID="firstResponder"/>
56
+            </objects>
57
+            <point key="canvasLocation" x="1023" y="643"/>
58
+        </scene>
59
+    </scenes>
60
+</document>

+ 45
- 0
ios/example-pip-app/src/Info.plist View File

@@ -0,0 +1,45 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+<dict>
5
+	<key>CFBundleDevelopmentRegion</key>
6
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
7
+	<key>CFBundleExecutable</key>
8
+	<string>$(EXECUTABLE_NAME)</string>
9
+	<key>CFBundleIdentifier</key>
10
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
+	<key>CFBundleInfoDictionaryVersion</key>
12
+	<string>6.0</string>
13
+	<key>CFBundleName</key>
14
+	<string>$(PRODUCT_NAME)</string>
15
+	<key>CFBundlePackageType</key>
16
+	<string>APPL</string>
17
+	<key>CFBundleShortVersionString</key>
18
+	<string>1.0</string>
19
+	<key>CFBundleVersion</key>
20
+	<string>1</string>
21
+	<key>LSRequiresIPhoneOS</key>
22
+	<true/>
23
+	<key>UILaunchStoryboardName</key>
24
+	<string>LaunchScreen</string>
25
+	<key>UIMainStoryboardFile</key>
26
+	<string>Main</string>
27
+	<key>UIRequiredDeviceCapabilities</key>
28
+	<array>
29
+		<string>armv7</string>
30
+	</array>
31
+	<key>UISupportedInterfaceOrientations</key>
32
+	<array>
33
+		<string>UIInterfaceOrientationPortrait</string>
34
+		<string>UIInterfaceOrientationLandscapeLeft</string>
35
+		<string>UIInterfaceOrientationLandscapeRight</string>
36
+	</array>
37
+	<key>UISupportedInterfaceOrientations~ipad</key>
38
+	<array>
39
+		<string>UIInterfaceOrientationPortrait</string>
40
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
41
+		<string>UIInterfaceOrientationLandscapeLeft</string>
42
+		<string>UIInterfaceOrientationLandscapeRight</string>
43
+	</array>
44
+</dict>
45
+</plist>

+ 26
- 0
ios/example-pip-app/src/JitsiViewController.swift View File

@@ -0,0 +1,26 @@
1
+//
2
+//  JitsiViewController.swift
3
+//  PiPApp
4
+//
5
+//  Created by Daniel Ornelas on 3/5/18.
6
+//  Copyright © 2018 Atlassian Inc. All rights reserved.
7
+//
8
+
9
+import JitsiMeet
10
+import UIKit
11
+
12
+final class JitsiViewController: UIViewController {
13
+    
14
+    override func viewDidLoad() {
15
+        super.viewDidLoad()
16
+        
17
+        guard let jitsiView = self.view as? JitsiMeetView else { return }
18
+        
19
+        jitsiView.welcomePageEnabled = true
20
+        jitsiView.load(nil)
21
+        
22
+        // TODO: delete me, this is only testing access to swift object in SDK
23
+        let jitsiManager = JitsiManager()
24
+        jitsiManager.testMe()
25
+    }
26
+}

+ 27
- 0
ios/example-pip-app/src/ViewController.swift View File

@@ -0,0 +1,27 @@
1
+//
2
+//  ViewController.swift
3
+//  ExampleAppUsingJitsiWithPiP
4
+//
5
+//  Created by Daniel Ornelas on 3/5/18.
6
+//  Copyright © 2018 Atlassian Inc. All rights reserved.
7
+//
8
+
9
+import UIKit
10
+import JitsiMeet
11
+
12
+class ViewController: UIViewController {
13
+
14
+    @IBOutlet weak var videoButton: UIButton?
15
+    
16
+    override func viewDidLoad() {
17
+        super.viewDidLoad()
18
+    }
19
+    
20
+    // MARK: - Actions
21
+    
22
+    @IBAction func startMeeting(sender: Any?) {
23
+        print("test")
24
+    }
25
+
26
+}
27
+

+ 3
- 0
ios/jitsi-meet.xcworkspace/contents.xcworkspacedata View File

@@ -1,6 +1,9 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <Workspace
3 3
    version = "1.0">
4
+   <FileRef
5
+      location = "group:example-pip-app/PiPApp.xcodeproj">
6
+   </FileRef>
4 7
    <FileRef
5 8
       location = "group:app/app.xcodeproj">
6 9
    </FileRef>

+ 18
- 0
ios/sdk/sdk.xcodeproj/project.pbxproj View File

@@ -27,6 +27,8 @@
27 27
 		0BCA496C1EC4BBF900B793EE /* jitsi.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0BCA496B1EC4BBF900B793EE /* jitsi.ttf */; };
28 28
 		0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; };
29 29
 		0F65EECE1D95DA94561BB47E /* libPods-JitsiMeet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 03F2ADC957FF109849B7FCA1 /* libPods-JitsiMeet.a */; };
30
+		C6F99C14204DB63E0001F710 /* JitsiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F99C12204DB63D0001F710 /* JitsiManager.swift */; };
31
+		C6F99C15204DB63E0001F710 /* JitsiMeetView+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F99C13204DB63D0001F710 /* JitsiMeetView+Private.h */; };
30 32
 /* End PBXBuildFile section */
31 33
 
32 34
 /* Begin PBXFileReference section */
@@ -55,6 +57,8 @@
55 57
 		0BD906E91EC0C00300C8C18E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
56 58
 		98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = "<group>"; };
57 59
 		9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.release.xcconfig"; sourceTree = "<group>"; };
60
+		C6F99C12204DB63D0001F710 /* JitsiManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JitsiManager.swift; sourceTree = "<group>"; };
61
+		C6F99C13204DB63D0001F710 /* JitsiMeetView+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JitsiMeetView+Private.h"; sourceTree = "<group>"; };
58 62
 /* End PBXFileReference section */
59 63
 
60 64
 /* Begin PBXFrameworksBuildPhase section */
@@ -109,9 +113,11 @@
109 113
 				0BA13D301EE83FF8007BEF7F /* ExternalAPI.m */,
110 114
 				0BD906E91EC0C00300C8C18E /* Info.plist */,
111 115
 				0B7C2CFC200F51D60060D076 /* LaunchOptions.m */,
116
+				C6F99C12204DB63D0001F710 /* JitsiManager.swift */,
112 117
 				0BD906E81EC0C00300C8C18E /* JitsiMeet.h */,
113 118
 				0B412F161EDEC65D00B1A0A6 /* JitsiMeetView.h */,
114 119
 				0B412F171EDEC65D00B1A0A6 /* JitsiMeetView.m */,
120
+				C6F99C13204DB63D0001F710 /* JitsiMeetView+Private.h */,
115 121
 				0B412F1B1EDEC80100B1A0A6 /* JitsiMeetViewDelegate.h */,
116 122
 				0B44A0181F902126009D1D64 /* MPVolumeViewManager.m */,
117 123
 				0B93EF7C1EC9DDCD0030D24D /* RCTBridgeWrapper.h */,
@@ -150,6 +156,7 @@
150 156
 			isa = PBXHeadersBuildPhase;
151 157
 			buildActionMask = 2147483647;
152 158
 			files = (
159
+				C6F99C15204DB63E0001F710 /* JitsiMeetView+Private.h in Headers */,
153 160
 				0B412F181EDEC65D00B1A0A6 /* JitsiMeetView.h in Headers */,
154 161
 				0B93EF7E1EC9DDCD0030D24D /* RCTBridgeWrapper.h in Headers */,
155 162
 				0B412F221EDEF6EA00B1A0A6 /* JitsiMeetViewDelegate.h in Headers */,
@@ -192,6 +199,7 @@
192 199
 				TargetAttributes = {
193 200
 					0BD906E41EC0C00300C8C18E = {
194 201
 						CreatedOnToolsVersion = 8.3.2;
202
+						LastSwiftMigration = 0920;
195 203
 						ProvisioningStyle = Automatic;
196 204
 					};
197 205
 				};
@@ -309,6 +317,7 @@
309 317
 				0BA13D311EE83FF8007BEF7F /* ExternalAPI.m in Sources */,
310 318
 				0BCA49601EC4B6C600B793EE /* POSIX.m in Sources */,
311 319
 				0B7C2CFD200F51D60060D076 /* LaunchOptions.m in Sources */,
320
+				C6F99C14204DB63E0001F710 /* JitsiManager.swift in Sources */,
312 321
 				0BCA495F1EC4B6C600B793EE /* AudioMode.m in Sources */,
313 322
 				0B44A0191F902126009D1D64 /* MPVolumeViewManager.m in Sources */,
314 323
 				0BCA49611EC4B6C600B793EE /* Proximity.m in Sources */,
@@ -435,6 +444,8 @@
435 444
 			isa = XCBuildConfiguration;
436 445
 			baseConfigurationReference = 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */;
437 446
 			buildSettings = {
447
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
448
+				CLANG_ENABLE_MODULES = YES;
438 449
 				CODE_SIGN_IDENTITY = "";
439 450
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
440 451
 				DEFINES_MODULE = YES;
@@ -450,6 +461,9 @@
450 461
 				PRODUCT_NAME = "$(TARGET_NAME)";
451 462
 				PROVISIONING_PROFILE_SPECIFIER = "";
452 463
 				SKIP_INSTALL = YES;
464
+				SWIFT_OBJC_BRIDGING_HEADER = "";
465
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
466
+				SWIFT_VERSION = 3.0;
453 467
 			};
454 468
 			name = Debug;
455 469
 		};
@@ -457,6 +471,8 @@
457 471
 			isa = XCBuildConfiguration;
458 472
 			baseConfigurationReference = 9C77CA3CC919B081F1A52982 /* Pods-JitsiMeet.release.xcconfig */;
459 473
 			buildSettings = {
474
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
475
+				CLANG_ENABLE_MODULES = YES;
460 476
 				CODE_SIGN_IDENTITY = "";
461 477
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
462 478
 				DEFINES_MODULE = YES;
@@ -472,6 +488,8 @@
472 488
 				PRODUCT_NAME = "$(TARGET_NAME)";
473 489
 				PROVISIONING_PROFILE_SPECIFIER = "";
474 490
 				SKIP_INSTALL = YES;
491
+				SWIFT_OBJC_BRIDGING_HEADER = "";
492
+				SWIFT_VERSION = 3.0;
475 493
 			};
476 494
 			name = Release;
477 495
 		};

+ 17
- 0
ios/sdk/src/JitsiManager.swift View File

@@ -0,0 +1,17 @@
1
+//
2
+//  JitsiManager.swift
3
+//  JitsiMeet
4
+//
5
+//  Created by Daniel Ornelas on 3/5/18.
6
+//  Copyright © 2018 Jitsi. All rights reserved.
7
+//
8
+
9
+import Foundation
10
+
11
+@objc(JitsiManager)
12
+public class JitsiManager: NSObject {
13
+    
14
+    public func testMe() {
15
+        print("hi there")
16
+    }
17
+}

Loading…
Cancel
Save