464027401@qq.com
2021-09-27 b469805b2d0c9b23ca020cf9356ff137205f856c
HDLLinPhoneSDK£¨OC£©/HDLLinPhoneSDK/HDLLinPhoneSDK.m
@@ -13,7 +13,7 @@
#import "HDLLPOnMonitorViewController.h"
@interface HDLLinPhoneSDK()
@property (strong, nonatomic) HDLLinphoneIntercomVC* presentingIntercomVC;//当前展示的来点控制器,用于存放正在展示的来点控制器,避免重复弹出界面
@end
@implementation HDLLinPhoneSDK
@@ -70,18 +70,19 @@
    if (state == LinphoneCallIncomingReceived) {
        [self.hdlLinphoneCallDelegate onIncomingCall:userName];
        if(self.IsAutoJumpCallView){
//                    NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]];
//                    BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"];
            
                    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
//                    vc.CallId=callId;
                    vc.hasVideo=YES;
                    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
                    vc.modalPresentationStyle = UIModalPresentationFullScreen;
//                    self.IntercomVC=vc;
                    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
//                    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
////                    vc.CallId=callId;
//                    vc.hasVideo=YES;
//                    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
//                    vc.modalPresentationStyle = UIModalPresentationFullScreen;
////                    self.IntercomVC=vc;
//                    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
//
//                    }];
            
                    }];
            [self gotoHDLLinphoneIntercomVC:nil];
        }
    }
}
@@ -114,16 +115,73 @@
    
//    NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]];
//    BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"];
//    NSLog(@"顶层视图:%@",[HDLLinPhoneCommon topMostController]);
    if ([HDLLinPhoneCommon rootPresentVCContent:[HDLLinphoneIntercomVC class]]||[HDLLinPhoneCommon rootPresentVCContent:[HDLLPOnMonitorViewController class]]) {
        if ([[HDLLinPhoneCommon topMostController] isKindOfClass:[UIAlertController class]]) {
            NSLog(@"顶层视图是视频通话页");
            __weak typeof(self) weakSelf = self;
            [[HDLLinPhoneCommon topMostController] dismissViewControllerAnimated:NO completion:^{
                UIViewController *topVC=[HDLLinPhoneCommon topMostController];
                if ([topVC isKindOfClass:[HDLLPOnMonitorViewController class]]) {
                    [topVC dismissViewControllerAnimated:NO completion:^{
                        [weakSelf toLinphoneIntercomVC:titleName];
                    }];
                }else if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) {
                    [topVC dismissViewControllerAnimated:NO completion:^{
                        [weakSelf toLinphoneIntercomVC:titleName];
                    }];
                }
            }];
        }
//        UIViewController *topVC=[HDLLinPhoneCommon topMostController];
//        if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) {
//            [topVC dismissViewControllerAnimated:NO completion:nil];
//        }
        return;
    }
    [self toLinphoneIntercomVC:titleName];
//    if (self.presentingIntercomVC) {
//        __weak typeof(self) weakSelf = self;
//        [self.presentingIntercomVC dismissViewControllerAnimated:NO completion:^{
//            NSLog(@"页面退出了");
//            weakSelf.presentingIntercomVC=nil;
//            [weakSelf toLinphoneIntercomVC:titleName];
//        }];
//
//        return;
//    }
//    NSLog(@"执行到我了");
//    [self toLinphoneIntercomVC:titleName];
//    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
////    vc.CallId=callId;
//    vc.hasVideo=YES;
//    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
//    if (titleName) {
//        vc.titleName=titleName;
//    }
//    vc.modalPresentationStyle = UIModalPresentationFullScreen;
//    self.presentingIntercomVC=vc;
//    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
//
//    }];
}
-(void)toLinphoneIntercomVC:(NSString*)titleName{
    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
//    vc.CallId=callId;
    vc.hasVideo=YES;
    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
    vc.titleName=titleName;
    if (titleName) {
        vc.titleName=titleName;
    }
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
//    self.IntercomVC=vc;
//    self.presentingIntercomVC=vc;
    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
    }];
}