@@ -24,7 +24,12 @@ - (UIView *)view
24
24
RCTLogInfo (@" Initialize is deprecated in v2" );
25
25
}
26
26
27
- RCT_EXPORT_METHOD (call:(NSString *)urlString userInfo:(NSDictionary *)userInfo)
27
+ RCT_EXPORT_METHOD (
28
+ call:(NSString *)urlString
29
+ userInfo:(NSDictionary *)userInfo
30
+ meetOptions:(NSDictionary *)meetOptions
31
+ meetFeatureFlags:(NSDictionary *)meetFeatureFlags
32
+ )
28
33
{
29
34
RCTLogInfo (@" Load URL %@ " , urlString);
30
35
JitsiMeetUserInfo * _userInfo = [[JitsiMeetUserInfo alloc ] init ];
@@ -43,6 +48,58 @@ - (UIView *)view
43
48
dispatch_sync (dispatch_get_main_queue (), ^{
44
49
JitsiMeetConferenceOptions *options = [JitsiMeetConferenceOptions fromBuilder: ^(JitsiMeetConferenceOptionsBuilder *builder) {
45
50
builder.room = urlString;
51
+ if (meetOptions[@" token" ] != NULL )
52
+ builder.token = meetOptions[@" token" ];
53
+ if (meetOptions[@" subject" ] != NULL )
54
+ builder.subject = meetOptions[@" subject" ];
55
+ if (meetOptions[@" videoMuted" ] != NULL )
56
+ builder.videoMuted = [[meetOptions objectForKey: @" videoMuted" ] boolValue ];
57
+ if (meetOptions[@" audioOnly" ] != NULL )
58
+ builder.audioOnly = [[meetOptions objectForKey: @" audioOnly" ] boolValue ];
59
+ if (meetOptions[@" audioMuted" ] != NULL )
60
+ builder.audioMuted = [[meetOptions objectForKey: @" audioMuted" ] boolValue ];
61
+
62
+ if (meetFeatureFlags[@" addPeopleEnabled" ] != NULL )
63
+ [builder setFeatureFlag: @" add-people.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" addPeopleEnabled" ] boolValue ]];
64
+ if (meetFeatureFlags[@" calendarEnabled" ] != NULL )
65
+ [builder setFeatureFlag: @" calendar.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" calendarEnabled" ] boolValue ]];
66
+ if (meetFeatureFlags[@" callIntegrationEnabled" ] != NULL )
67
+ [builder setFeatureFlag: @" call-integration.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" callIntegrationEnabled" ] boolValue ]];
68
+ if (meetFeatureFlags[@" chatEnabled" ] != NULL )
69
+ [builder setFeatureFlag: @" chat.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" chatEnabled" ] boolValue ]];
70
+ if (meetFeatureFlags[@" closeCaptionsEnabled" ] != NULL )
71
+ [builder setFeatureFlag: @" close-captions.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" closeCaptionsEnabled" ] boolValue ]];
72
+ if (meetFeatureFlags[@" inviteEnabled" ] != NULL )
73
+ [builder setFeatureFlag: @" invite.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" inviteEnabled" ] boolValue ]];
74
+ if (meetFeatureFlags[@" iosRecordingEnabled" ] != NULL )
75
+ [builder setFeatureFlag: @" ios-recording.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" iosRecordingEnabled" ] boolValue ]];
76
+ if (meetFeatureFlags[@" liveStreamingEnabled" ] != NULL )
77
+ [builder setFeatureFlag: @" live-streaming.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" liveStreamingEnabled" ] boolValue ]];
78
+ if (meetFeatureFlags[@" meetingNameEnabled" ] != NULL )
79
+ [builder setFeatureFlag: @" meeting-name.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" meetingNameEnabled" ] boolValue ]];
80
+ if (meetFeatureFlags[@" toolboxEnabled" ] != NULL )
81
+ [builder setFeatureFlag: @" toolbox.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" toolboxEnabled" ] boolValue ]];
82
+ if (meetFeatureFlags[@" toolboxAlwaysVisible" ] != NULL )
83
+ [builder setFeatureFlag: @" toolbox.alwaysVisible" withBoolean: [[meetFeatureFlags objectForKey: @" toolboxAlwaysVisible" ] boolValue ]];
84
+ if (meetFeatureFlags[@" raiseHandEnabled" ] != NULL )
85
+ [builder setFeatureFlag: @" raise-hand.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" raiseHandEnabled" ] boolValue ]];
86
+ if (meetFeatureFlags[@" reactionsEnabled" ] != NULL )
87
+ [builder setFeatureFlag: @" reactions.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" reactionsEnabled" ] boolValue ]];
88
+ if (meetFeatureFlags[@" kickOutEnabled" ] != NULL )
89
+ [builder setFeatureFlag: @" kick-out.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" kickOutEnabled" ] boolValue ]];
90
+ if (meetFeatureFlags[@" conferenceTimerEnabled" ] != NULL )
91
+ [builder setFeatureFlag: @" conference-timer.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" conferenceTimerEnabled" ] boolValue ]];
92
+ if (meetFeatureFlags[@" meetingPasswordEnabled" ] != NULL )
93
+ [builder setFeatureFlag: @" video-share.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" meetingPasswordEnabled" ] boolValue ]];
94
+ if (meetFeatureFlags[@" meetingPasswordEnabled" ] != NULL )
95
+ [builder setFeatureFlag: @" meeting-password.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" meetingPasswordEnabled" ] boolValue ]];
96
+ if (meetFeatureFlags[@" pipEnabled" ] != NULL )
97
+ [builder setFeatureFlag: @" pip.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" pipEnabled" ] boolValue ]];
98
+ if (meetFeatureFlags[@" tileViewEnabled" ] != NULL )
99
+ [builder setFeatureFlag: @" tile-view.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" tileViewEnabled" ] boolValue ]];
100
+ if (meetFeatureFlags[@" welcomePageEnabled" ] != NULL )
101
+ [builder setFeatureFlag: @" welcomepage.enabled" withBoolean: [[meetFeatureFlags objectForKey: @" welcomePageEnabled" ] boolValue ]];
102
+
46
103
builder.userInfo = _userInfo;
47
104
}];
48
105
[jitsiMeetView join: options];
0 commit comments