diff --git a/plugin.xml b/plugin.xml
index 17e1a61..13e768b 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -44,12 +44,16 @@
+
+
+
+
-
-
+
+
@@ -64,7 +68,7 @@
-
+
diff --git a/src/ios/Events.m b/src/ios/Events.m
index 577e683..8eac1bd 100644
--- a/src/ios/Events.m
+++ b/src/ios/Events.m
@@ -13,7 +13,7 @@
@implementation Events
static NSString* PREFIX = @"com.tencent.trtc.event";
-static NSDictionary *events = nil;
+static NSDictionary*> *events = nil;
+ (void)fireEvent: (NSString*)event{
[Events fireEvent: nil];
@@ -21,7 +21,7 @@ static NSDictionary *events = nil;
+ (void)fireEvent: (NSString*)event extra:(NSDictionary*)extra{
[Events init];
NSLog(@"TRTC - Events::fireEvent --- event:%@,extra:%@",event,extra);
- NSMutableArray* listeners = [self getEventListener:event];
+ NSMutableOrderedSet* listeners = [self getEventListener:event];
if(listeners != nil && listeners.count > 0 ){
for (Listener* listener in listeners) {
NSLog(@"TRTC - Events::fireEvent --- event:%@,listener:%@",event,listener);
@@ -32,7 +32,7 @@ static NSDictionary *events = nil;
+ (void)addListener: (NSString*)event listener:(Listener*)listener{
[Events init];
NSLog(@"TRTC - Events::addListener --- event:%@,listener:%@",event,listener);
- NSMutableArray* listeners = [self getEventListener:event];
+ NSMutableOrderedSet* listeners = [self getEventListener:event];
if(![listeners containsObject:listener]){
[listeners addObject:listener];
}
@@ -40,7 +40,7 @@ static NSDictionary *events = nil;
+ (void)removeListener: (NSString*)event listener:(Listener*)listener{
[Events init];
NSLog(@"TRTC - Events::removeListener --- event:%@,listener:%@",event,listener);
- NSMutableArray* listeners = [self getEventListener:event];
+ NSMutableOrderedSet* listeners = [self getEventListener:event];
if([listeners containsObject:listener]){
[listeners removeObject:listener];
}
@@ -48,15 +48,13 @@ static NSDictionary *events = nil;
+ (void)init{
if( events == nil){
- events = [NSDictionary new];
+ NSMutableOrderedSet* listeners = [[NSMutableOrderedSet alloc] init];
+ events = [[NSDictionary alloc] initWithObjectsAndKeys:listeners,@"com.tencent.trtc.eventuserinfo.update", nil];
}
}
-+ (NSMutableArray*) getEventListener: (NSString*)event{
++ (NSMutableOrderedSet*) getEventListener: (NSString*)event{
+ [Events init];
NSString* key = [[NSString alloc] initWithFormat:@"%@%@", PREFIX, event ];
- if([events objectForKey:key] == nil){
- NSMutableArray* listeners = [NSMutableArray array];
- [events setValue:listeners forKey:key];
- }
- return [events objectForKey:key];
+ return [events valueForKey:key];
}
@end
diff --git a/src/ios/Listener.h b/src/ios/Listener.h
index 66c1b2b..9ce0c35 100644
--- a/src/ios/Listener.h
+++ b/src/ios/Listener.h
@@ -9,7 +9,7 @@
#define Listener_h
#endif /* Listener_h */
-@interface Listener
+@interface Listener:NSObject
{}
- (instancetype)init;
- (void)on: (NSDictionary*)extra;
diff --git a/src/ios/Listener.m b/src/ios/Listener.m
new file mode 100644
index 0000000..6264930
--- /dev/null
+++ b/src/ios/Listener.m
@@ -0,0 +1,21 @@
+//
+// Listener.m
+// shuto-cne
+//
+// Created by 范大德 on 2022/3/30.
+//
+
+#import
+#import "Listener.h"
+@interface Listener()
+{}
+- (instancetype)init;
+- (void)on: (NSDictionary*)extra;
+@end
+
+@implementation Listener
+- (instancetype)init{
+ return self;
+}
+- (void)on: (NSDictionary*)extra{}
+@end
diff --git a/src/ios/TrtcUserInfo.h b/src/ios/TrtcUserInfo.h
new file mode 100644
index 0000000..2bb8371
--- /dev/null
+++ b/src/ios/TrtcUserInfo.h
@@ -0,0 +1,31 @@
+//
+// TrtcUserInfo.h
+// shuto-cne
+//
+// Created by 范大德 on 2022/3/30.
+//
+
+#ifndef TrtcUserInfo_h
+#define TrtcUserInfo_h
+
+
+#endif /* TrtcUserInfo_h */
+@interface TrtcUserInfo: NSObject
+{}
+// 自定义类的初始化方法
+
+// 过去类型instancetype 是 id 类型
+
+- (instancetype)initWithPersonid:(NSString *)personid;
+
+- (NSString*) personid;
+-(NSString *)displayName;
+
+-(BOOL)isShareUser;
+
+-(BOOL)isLocalUser;
+
+-(void)setLocal:(BOOL) value;
+-(void)setDisplayName:(NSString *)value;
+
+@end
diff --git a/src/ios/TrtcUserInfo.m b/src/ios/TrtcUserInfo.m
index f5879cb..5bb1c32 100644
--- a/src/ios/TrtcUserInfo.m
+++ b/src/ios/TrtcUserInfo.m
@@ -6,22 +6,13 @@
//
#import
-@interface TrtcUserInfo : NSObject
+#import "TrtcUserInfo.h"
+@interface TrtcUserInfo()
{
NSString* personid;
NSString* displayName;
BOOL local;
}
-
-
-
-// 自定义类的初始化方法
-
-// 过去类型instancetype 是 id 类型
-
-- (instancetype)initWithPersonid:(NSString *)personid;
-
-- (NSString*) personid;
@end
@implementation TrtcUserInfo
diff --git a/src/ios/Toast/UIView+Toast.h b/src/ios/UIView+Toast.h
similarity index 100%
rename from src/ios/Toast/UIView+Toast.h
rename to src/ios/UIView+Toast.h
diff --git a/src/ios/Toast/UIView+Toast.m b/src/ios/UIView+Toast.m
similarity index 100%
rename from src/ios/Toast/UIView+Toast.m
rename to src/ios/UIView+Toast.m
diff --git a/src/ios/UserUpdateListener.h b/src/ios/UserUpdateListener.h
new file mode 100644
index 0000000..29e08cb
--- /dev/null
+++ b/src/ios/UserUpdateListener.h
@@ -0,0 +1,18 @@
+//
+// UserUpdateListener.h
+// shuto-cne
+//
+// Created by 范大德 on 2022/3/30.
+//
+
+#ifndef UserUpdateListener_h
+#define UserUpdateListener_h
+
+
+#endif /* UserUpdateListener_h */
+
+#import "Listener.h"
+
+@interface UserUpdateListener:Listener
+{}
+@end
diff --git a/src/ios/UserUpdateListener.m b/src/ios/UserUpdateListener.m
index a5502d4..ca1afd7 100644
--- a/src/ios/UserUpdateListener.m
+++ b/src/ios/UserUpdateListener.m
@@ -5,11 +5,9 @@
// Created by 范大德 on 2022/3/29.
//
-#import
-#import "Listener.h"
-#import "TrtcUserInfo.m"
+#import "UserUpdateListener.h"
#import "VideoCallingViewController.h"
-@interface UserUpdateListener : Listener
+@interface UserUpdateListener()
{}
@end
@implementation UserUpdateListener
@@ -20,16 +18,7 @@
-(void)on: (NSDictionary*)extra{
- NSLog(@"TRTC - userinfo.update -- userID:%@,displayname:%@",extra[@"userId"],extra[@"displayName"]);
- TrtcUserInfo *user = [[TrtcUserInfo alloc] initWithPersonid:extra[@"userId"]];
- NSInteger index = [[[VideoCallingViewController viewController] remoteUidSet] indexOfObject: user];
- NSLog(@"TRTC - userinfo.update -- userId:%@,index:%ld",extra[@"userId"],index);
- if (index != NSNotFound) { return; }
- TrtcUserInfo *obj = [[VideoCallingViewController viewController] remoteUidSet][index];
- [obj setDisplayName: extra[@"displayName"]];
- dispatch_async(dispatch_get_main_queue(), ^{
- [[VideoCallingViewController viewController] refreshRemoteVideoViews];
- });
+ [[VideoCallingViewController viewController]updateUser:extra];
}
@end
diff --git a/src/ios/VideoCallingViewController.h b/src/ios/VideoCallingViewController.h
index 2859204..be85877 100755
--- a/src/ios/VideoCallingViewController.h
+++ b/src/ios/VideoCallingViewController.h
@@ -6,7 +6,6 @@
//
#import
-//#import "TrtcOptions.h"
#import
@@ -18,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN
- (NSMutableOrderedSet *)remoteUidSet;
+(VideoCallingViewController*)viewController;
- (void)refreshRemoteVideoViews;
+- (void) updateUser:(NSDictionary*)extra;
@end
NS_ASSUME_NONNULL_END
diff --git a/src/ios/VideoCallingViewController.m b/src/ios/VideoCallingViewController.m
index 967036b..636393d 100755
--- a/src/ios/VideoCallingViewController.m
+++ b/src/ios/VideoCallingViewController.m
@@ -30,11 +30,11 @@ Real-Time Audio Call
#import "VideoCallingViewController.h"
-#import "TrtcUserInfo.m"
+#import "TrtcUserInfo.h"
#import "CordovaEventKit.h"
-#import "Toast/UIView+Toast.h"
+#import "UIView+Toast.h"
#import "Events.h"
-#import "UserUpdateListener.m"
+#import "UserUpdateListener.h"
static const NSInteger maxRemoteUserNum = 7;
@@ -103,6 +103,19 @@ static const NSInteger maxRemoteUserNum = 7;
return self;
}
+- (void) updateUser:(NSDictionary*)extra{
+ NSLog(@"TRTC - userinfo.update -- userID:%@,displayname:%@",extra[@"userId"],extra[@"displayName"]);
+ TrtcUserInfo *user = [[TrtcUserInfo alloc]initWithPersonid:extra[@"userId"]];
+ NSInteger index = [[self remoteUidSet] indexOfObject: user];
+ NSLog(@"TRTC - userinfo.update -- userId:%@,index:%ld",extra[@"userId"],index);
+ if (index != NSNotFound) { return; }
+ TrtcUserInfo *obj = [self remoteUidSet][index];
+ [obj setDisplayName: extra[@"displayName"]];
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [self refreshRemoteVideoViews];
+ });
+}
+
- (void)viewDidLoad {
[super viewDidLoad];
@@ -119,7 +132,7 @@ static const NSInteger maxRemoteUserNum = 7;
_displayLabel.text = @"我";
_displayLabel.hidden = NO;
_rotation = 0;
- [Events addListener:@"userinfo.update" listener: [UserUpdateListener init] ];
+ [Events addListener:@"userinfo.update" listener: [[UserUpdateListener alloc] init] ];
}
diff --git a/src/ios/VideoCallingViewController.xib b/src/ios/VideoCallingViewController.xib
index 02ff771..0fc2fa8 100755
--- a/src/ios/VideoCallingViewController.xib
+++ b/src/ios/VideoCallingViewController.xib
@@ -1,29 +1,31 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -33,6 +35,16 @@
+
+
+
@@ -41,6 +53,16 @@
+
+
+
@@ -49,6 +71,16 @@
+
+
+
@@ -57,6 +89,16 @@
+
+
+
@@ -65,6 +107,16 @@
+
+
+
@@ -73,92 +125,122 @@
+
+
+
-
@@ -166,34 +248,32 @@
+
-
-
-
-
-
+
-
-
-
-
-
+
+
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+