@@ -24,7 +24,12 @@ - (UIView *)view
2424 RCTLogInfo (@" Initialize is deprecated in v2" );
2525}
2626
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+ )
2833{
2934 RCTLogInfo (@" Load URL %@ " , urlString);
3035 JitsiMeetUserInfo * _userInfo = [[JitsiMeetUserInfo alloc ] init ];
@@ -43,6 +48,58 @@ - (UIView *)view
4348 dispatch_sync (dispatch_get_main_queue (), ^{
4449 JitsiMeetConferenceOptions *options = [JitsiMeetConferenceOptions fromBuilder: ^(JitsiMeetConferenceOptionsBuilder *builder) {
4550 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+
46103 builder.userInfo = _userInfo;
47104 }];
48105 [jitsiMeetView join: options];
0 commit comments