[iOS] Namespace the public API of the feature invite

This commit is contained in:
Lyubo Marinov 2018-05-06 21:31:38 -05:00
parent 529e5e8938
commit 85612b9ae1
13 changed files with 58 additions and 54 deletions

View File

@ -18,6 +18,6 @@
#import <JitsiMeet/JitsiMeet.h>
@interface ViewController : UIViewController<JitsiMeetViewDelegate, InviteControllerDelegate>
@interface ViewController : UIViewController<JitsiMeetViewDelegate, JMInviteControllerDelegate>
@end

View File

@ -31,9 +31,7 @@
view.delegate = self;
// inviteController
InviteController *inviteController = view.inviteController;
inviteController.delegate = self;
view.inviteController.delegate = self;
#endif // #ifdef DEBUG
@ -78,13 +76,13 @@ void _onJitsiMeetViewDelegateEvent(NSString *name, NSDictionary *data) {
_onJitsiMeetViewDelegateEvent(@"LOAD_CONFIG_ERROR", data);
}
- (void)beginAddPeople:(AddPeopleController *)addPeopleController {
- (void)beginAddPeople:(JMAddPeopleController *)addPeopleController {
NSLog(
@"[%s:%d] InviteControllerDelegate %s",
@"[%s:%d] JMInviteControllerDelegate %s",
__FILE__, __LINE__, __FUNCTION__);
// XXX Explicitly invoke endAddPeople on addPeopleController; otherwise, it
// is going to be memory-leaked in the associated InviteController and no
// is going to be memory-leaked in the associated JMInviteController and no
// subsequent InviteButton clicks/taps will be delivered.
[addPeopleController endAddPeople];
}

View File

@ -26,7 +26,7 @@
@property (nonatomic, nullable, weak) id<JitsiMeetViewDelegate> delegate;
@property (nonatomic, readonly, nonnull) InviteController *inviteController;
@property (nonatomic, readonly, nonnull) JMInviteController *inviteController;
@property (nonatomic) BOOL pictureInPictureEnabled;

View File

@ -413,8 +413,8 @@ static NSMapTable<NSString *, JitsiMeetView *> *views;
Invite *inviteModule = [bridgeWrapper.bridge moduleForName:@"Invite"];
_inviteController
= [[InviteController alloc] initWithExternalAPIScope:externalAPIScope
andInviteModule:inviteModule];
= [[JMInviteController alloc] initWithExternalAPIScope:externalAPIScope
andInviteModule:inviteModule];
// Set a background color which is in accord with the JavaScript and Android
// parts of the application and causes less perceived visual flicker than

View File

@ -17,13 +17,13 @@
#import "AddPeopleController.h"
#import "InviteController.h"
@interface AddPeopleController ()
@interface JMAddPeopleController ()
@property (nonatomic, strong) NSMutableDictionary* _Nonnull items;
@property (nonatomic, weak, nullable) InviteController *owner;
@property (nonatomic, weak, nullable) JMInviteController *owner;
@property (nonatomic, readonly) NSString* _Nonnull uuid;
- (instancetype _Nonnull)initWithOwner:(InviteController * _Nonnull)owner;
- (instancetype _Nonnull)initWithOwner:(JMInviteController * _Nonnull)owner;
- (void)inviteSettled:(NSArray<NSDictionary *> * _Nonnull)failedInvitees;

View File

@ -18,9 +18,9 @@
#import "AddPeopleControllerDelegate.h"
@interface AddPeopleController: NSObject
@interface JMAddPeopleController: NSObject
@property (nonatomic, nullable, weak) id<AddPeopleControllerDelegate> delegate;
@property (nonatomic, nullable, weak) id<JMAddPeopleControllerDelegate> delegate;
- (void)endAddPeople;

View File

@ -17,9 +17,9 @@
#import "AddPeopleController+Private.h"
#import "InviteController+Private.h"
@implementation AddPeopleController
@implementation JMAddPeopleController
- (instancetype)initWithOwner:(InviteController *)owner {
- (instancetype)initWithOwner:(JMInviteController *)owner {
self = [super init];
if (self) {
_uuid = [[NSUUID UUID] UUIDString];

View File

@ -18,24 +18,24 @@
#import "AddPeopleController.h"
@class AddPeopleController;
@class JMAddPeopleController;
@protocol AddPeopleControllerDelegate
@protocol JMAddPeopleControllerDelegate
/**
* Called when an AddPeopleController has results for a query that was
* Called when a JMAddPeopleController has results for a query that was
* previously provided.
*/
- (void)addPeopleController:(AddPeopleController * _Nonnull)controller
- (void)addPeopleController:(JMAddPeopleController * _Nonnull)controller
didReceiveResults:(NSArray<NSDictionary *> * _Nonnull)results
forQuery:(NSString * _Nonnull)query;
/**
* Called when an AddPeopleController has finished the inviting process, either
* Called when a JMAddPeopleController has finished the inviting process, either
* succesfully or not. In case of failure the failedInvitees array will contain
* the items for which invitations failed.
*/
- (void)inviteSettled:(NSArray<NSDictionary *> * _Nonnull)failedInvitees
fromSearchController:(AddPeopleController * _Nonnull)addPeopleController;
- (void) inviteSettled:(NSArray<NSDictionary *> * _Nonnull)failedInvitees
fromSearchController:(JMAddPeopleController * _Nonnull)addPeopleController;
@end

View File

@ -42,16 +42,17 @@ RCT_EXPORT_MODULE();
/**
* Initiates the process to add people. This involves calling a delegate method
* in the InviteControllerDelegate so the native host application can start
* in the JMInviteControllerDelegate so the native host application can start
* the query process.
*
* @param externalAPIScope - Scope identifying the JitsiMeetView where the
* calling JS code is being executed.
*/
RCT_EXPORT_METHOD(beginAddPeople:(NSString *)externalAPIScope) {
JitsiMeetView *view = [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
InviteController *controller = view.inviteController;
[controller beginAddPeople];
JitsiMeetView *view
= [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
JMInviteController *inviteController = view.inviteController;
[inviteController beginAddPeople];
}
/**
@ -59,7 +60,7 @@ RCT_EXPORT_METHOD(beginAddPeople:(NSString *)externalAPIScope) {
*
* @param externalAPIScope - Scope identifying the JitsiMeetView where the
* calling JS code is being executed.
* @param addPeopleControllerScope - Scope identifying the AddPeopleController
* @param addPeopleControllerScope - Scope identifying the JMAddPeopleController
* wich was settled.
* @param failedInvitees - Array with the invitees which were not invited due
* to a failure.
@ -67,19 +68,21 @@ RCT_EXPORT_METHOD(beginAddPeople:(NSString *)externalAPIScope) {
RCT_EXPORT_METHOD(inviteSettled:(NSString *)externalAPIScope
addPeopleControllerScope:(NSString *)addPeopleControllerScope
failedInvitees:(NSArray *)failedInvitees) {
JitsiMeetView *view = [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
InviteController *controller = view.inviteController;
[controller inviteSettled:addPeopleControllerScope failedInvitees:failedInvitees];
JitsiMeetView *view
= [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
JMInviteController *inviteController = view.inviteController;
[inviteController inviteSettled:addPeopleControllerScope
failedInvitees:failedInvitees];
}
/**
* Process results received for the given query. This involves calling a
* delegate method in AddPeopleControllerDelegate so the native host application
* is made aware of the query results.
* delegate method in JMAddPeopleControllerDelegate so the native host
* application is made aware of the query results.
*
* @param externalAPIScope - Scope identifying the JitsiMeetView where the
* calling JS code is being executed.
* @param addPeopleControllerScope - Scope identifying the AddPeopleController
* @param addPeopleControllerScope - Scope identifying the JMAddPeopleController
* for which the results were received.
* @param query - The actual query for which the results were received.
* @param results - The query results.
@ -88,9 +91,12 @@ RCT_EXPORT_METHOD(receivedResults:(NSString *)externalAPIScope
addPeopleControllerScope:(NSString *)addPeopleControllerScope
query:(NSString *)query
results:(NSArray *)results) {
JitsiMeetView *view = [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
InviteController *controller = view.inviteController;
[controller receivedResults:addPeopleControllerScope query:query results:results];
JitsiMeetView *view
= [JitsiMeetView viewForExternalAPIScope:externalAPIScope];
JMInviteController *inviteController = view.inviteController;
[inviteController receivedResults:addPeopleControllerScope
query:query
results:results];
}
- (void) invite:(NSArray<NSDictionary *> * _Nonnull)invitees

View File

@ -19,9 +19,9 @@
#import "AddPeopleController.h"
#import "Invite+Private.h"
@interface InviteController ()
@interface JMInviteController ()
@property (nonatomic, nullable) AddPeopleController *addPeopleController;
@property (nonatomic, nullable) JMAddPeopleController *addPeopleController;
@property (nonatomic) NSString * _Nonnull externalAPIScope;
@ -32,16 +32,16 @@
- (void)beginAddPeople;
- (void)endAddPeopleForController:(AddPeopleController * _Nonnull)controller;
- (void)endAddPeopleForController:(JMAddPeopleController * _Nonnull)controller;
- (void) invite:(NSArray * _Nonnull)invitees
forController:(AddPeopleController * _Nonnull)controller;
forController:(JMAddPeopleController * _Nonnull)controller;
- (void)inviteSettled:(NSString * _Nonnull)addPeopleControllerScope
failedInvitees:(NSArray * _Nonnull)failedInvitees;
- (void)performQuery:(NSString * _Nonnull)query
forController:(AddPeopleController * _Nonnull)controller;
forController:(JMAddPeopleController * _Nonnull)controller;
- (void)receivedResults:(NSString * _Nonnull)addPeopleControllerScope
query:(NSString * _Nonnull)query

View File

@ -18,13 +18,13 @@
#import "InviteControllerDelegate.h"
@interface InviteController : NSObject
@interface JMInviteController : NSObject
@property (nonatomic) BOOL addPeopleEnabled;
@property (nonatomic) BOOL dialOutEnabled;
@property (nonatomic, nullable, weak) id<InviteControllerDelegate> delegate;
@property (nonatomic, nullable, weak) id<JMInviteControllerDelegate> delegate;
- (void) invite:(NSArray * _Nonnull)invitees
withCompletion:(void (^ _Nullable)(NSArray<NSDictionary *> * _Nonnull failedInvitees))completion;

View File

@ -17,7 +17,7 @@
#import "InviteController+Private.h"
#import "AddPeopleController+Private.h"
@implementation InviteController {
@implementation JMInviteController {
NSNumber *_addPeopleEnabled;
NSNumber *_dialOutEnabled;
}
@ -49,7 +49,7 @@
return;
}
_addPeopleController = [[AddPeopleController alloc] initWithOwner:self];
_addPeopleController = [[JMAddPeopleController alloc] initWithOwner:self];
@try {
if (self.delegate
@ -61,7 +61,7 @@
}
}
-(void)endAddPeopleForController:(AddPeopleController *)controller {
-(void)endAddPeopleForController:(JMAddPeopleController *)controller {
if (self.addPeopleController == controller) {
self.addPeopleController = nil;
}
@ -99,7 +99,7 @@
- (void)inviteSettled:(NSString *)addPeopleControllerScope
failedInvitees:(NSArray *)failedInvitees {
AddPeopleController *controller = self.addPeopleController;
JMAddPeopleController *controller = self.addPeopleController;
if (controller != nil
&& [controller.uuid isEqualToString:addPeopleControllerScope]) {
@ -116,7 +116,7 @@
- (void)receivedResults:(NSString *)addPeopleControllerScope
query:(NSString *)query
results:(NSArray *)results {
AddPeopleController *controller = self.addPeopleController;
JMAddPeopleController *controller = self.addPeopleController;
if (controller != nil
&& [controller.uuid isEqualToString:addPeopleControllerScope]) {
@ -127,7 +127,7 @@
#pragma mark Use the Invite react-native module to emit the search / submission events
- (void) invite:(NSArray *)invitees
forController:(AddPeopleController * _Nonnull)controller {
forController:(JMAddPeopleController * _Nonnull)controller {
[self invite:invitees
forControllerScope:controller.uuid];
}
@ -147,7 +147,7 @@
}
- (void)performQuery:(NSString * _Nonnull)query
forController:(AddPeopleController * _Nonnull)controller {
forController:(JMAddPeopleController * _Nonnull)controller {
[self.inviteModule performQuery:query
externalAPIScope:self.externalAPIScope
addPeopleControllerScope:controller.uuid];

View File

@ -16,7 +16,7 @@
#import "AddPeopleController.h"
@protocol InviteControllerDelegate <NSObject>
@protocol JMInviteControllerDelegate <NSObject>
/**
* Called when the invite button in the conference is tapped.
@ -24,6 +24,6 @@
* The search controller provided can be used to query user search within the
* conference.
*/
- (void)beginAddPeople:(AddPeopleController *)addPeopleController;
- (void)beginAddPeople:(JMAddPeopleController *)addPeopleController;
@end