2017-08-04 11:08:37 +00:00
|
|
|
/*
|
|
|
|
Copyright 2017 Vector Creations Ltd
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#import <MatrixKit/MatrixKit.h>
|
|
|
|
|
|
|
|
#import <JitsiMeet/JitsiMeet.h>
|
|
|
|
|
|
|
|
#import "WidgetManager.h"
|
|
|
|
|
2017-08-11 12:18:10 +00:00
|
|
|
@protocol JitsiViewControllerDelegate;
|
|
|
|
|
2017-08-04 11:08:37 +00:00
|
|
|
/**
|
|
|
|
The `JitsiViewController` is a specific VC for handling a jitsi widget using
|
|
|
|
jitsi-meet iOS SDK instead of displaying it in a webview like other scalar widgets.
|
2017-08-10 13:43:25 +00:00
|
|
|
|
|
|
|
https://github.com/jitsi/jitsi-meet/tree/master/ios
|
|
|
|
|
2017-08-04 11:08:37 +00:00
|
|
|
*/
|
|
|
|
@interface JitsiViewController : MXKViewController <JitsiMeetViewDelegate>
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the `UINib` object initialized for a `JitsiViewController`.
|
|
|
|
|
|
|
|
@return The initialized `UINib` object or `nil` if there were errors during initialization
|
|
|
|
or the nib file could not be located.
|
|
|
|
*/
|
|
|
|
+ (UINib *)nib;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Creates and returns a new `JitsiViewController` object.
|
|
|
|
|
|
|
|
@discussion This is the designated initializer for programmatic instantiation.
|
2017-08-10 14:41:19 +00:00
|
|
|
|
2017-08-04 11:08:37 +00:00
|
|
|
@return An initialized `JitsiViewController` object if successful, `nil` otherwise.
|
|
|
|
*/
|
2017-08-10 14:41:19 +00:00
|
|
|
+ (instancetype)jitsiViewController;
|
|
|
|
|
|
|
|
/**
|
2017-08-11 12:18:10 +00:00
|
|
|
Make jitsi-meet iOS SDK open the jitsi conference indicated by a jitsi widget.
|
|
|
|
|
|
|
|
@param widget the jitsi widget.
|
|
|
|
@param video to indicate voice or video call.
|
|
|
|
@return YES if the operation is successful.
|
2017-08-10 14:41:19 +00:00
|
|
|
*/
|
|
|
|
- (BOOL)openWidget:(Widget*)widget withVideo:(BOOL)video;
|
2017-08-04 11:08:37 +00:00
|
|
|
|
2017-08-11 12:59:05 +00:00
|
|
|
/**
|
|
|
|
Hang up the jitsi conference call in progress.
|
|
|
|
*/
|
|
|
|
- (void)hangup;
|
|
|
|
|
2017-08-04 11:08:37 +00:00
|
|
|
/**
|
|
|
|
The jitsi widget displayed by this `JitsiViewController`.
|
|
|
|
*/
|
|
|
|
@property (nonatomic, readonly) Widget *widget;
|
|
|
|
|
2017-08-11 12:18:10 +00:00
|
|
|
/**
|
|
|
|
The delegate for the view controller.
|
|
|
|
*/
|
|
|
|
@property (nonatomic) id<JitsiViewControllerDelegate> delegate;
|
|
|
|
|
|
|
|
#pragma mark - Xib attributes
|
|
|
|
|
|
|
|
// The jitsi-meet SDK view
|
|
|
|
@property (weak, nonatomic) IBOutlet JitsiMeetView *jitsiMeetView;
|
|
|
|
@property (weak, nonatomic) IBOutlet UIButton *backToAppButton;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
Delegate for `JitsiViewController` object
|
|
|
|
*/
|
|
|
|
@protocol JitsiViewControllerDelegate <NSObject>
|
|
|
|
|
|
|
|
/**
|
|
|
|
Tells the delegate to dismiss the jitsi view controller.
|
|
|
|
|
|
|
|
@param jitsiViewController the jitsi view controller.
|
|
|
|
@param completion the block to execute at the end of the operation.
|
|
|
|
*/
|
|
|
|
- (void)jitsiViewController:(JitsiViewController *)jitsiViewController dismissViewJitsiController:(void (^)())completion;
|
|
|
|
|
|
|
|
/**
|
|
|
|
Tells the delegate to put the jitsi view controller in background.
|
|
|
|
|
|
|
|
@param jitsiViewController the jitsi view controller.
|
|
|
|
@param completion the block to execute at the end of the operation.
|
|
|
|
*/
|
|
|
|
- (void)jitsiViewController:(JitsiViewController *)jitsiViewController goBackToApp:(void (^)())completion;
|
|
|
|
|
2017-08-04 11:08:37 +00:00
|
|
|
@end
|