|  |  |  | @ -7,7 +7,7 @@ import flutter_local_notifications | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | // PKPushRegistryDelegate | 
		
	
		
			
				|  |  |  |  | @UIApplicationMain | 
		
	
		
			
				|  |  |  |  | @objc class AppDelegate: FlutterAppDelegate, PKPushRegistryDelegate { | 
		
	
		
			
				|  |  |  |  | @objc class AppDelegate: FlutterAppDelegate { | 
		
	
		
			
				|  |  |  |  |   override func application( | 
		
	
		
			
				|  |  |  |  |     _ application: UIApplication, | 
		
	
		
			
				|  |  |  |  |     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? | 
		
	
	
		
			
				
					|  |  |  | @ -16,49 +16,49 @@ import flutter_local_notifications | 
		
	
		
			
				|  |  |  |  |      FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in | 
		
	
		
			
				|  |  |  |  |            GeneratedPluginRegistrant.register(with: registry) | 
		
	
		
			
				|  |  |  |  |        } | 
		
	
		
			
				|  |  |  |  |        if #available(iOS 10.0, *) { | 
		
	
		
			
				|  |  |  |  |          UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate | 
		
	
		
			
				|  |  |  |  |        } | 
		
	
		
			
				|  |  |  |  | //       if #available(iOS 10.0, *) { | 
		
	
		
			
				|  |  |  |  | //         UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate | 
		
	
		
			
				|  |  |  |  | //       } | 
		
	
		
			
				|  |  |  |  |     GeneratedPluginRegistrant.register(with: self) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         //Setup VOIP | 
		
	
		
			
				|  |  |  |  |         let mainQueue = DispatchQueue.main | 
		
	
		
			
				|  |  |  |  |         let voipRegistry: PKPushRegistry = PKPushRegistry(queue: mainQueue) | 
		
	
		
			
				|  |  |  |  |         voipRegistry.delegate = self | 
		
	
		
			
				|  |  |  |  |         voipRegistry.desiredPushTypes = [PKPushType.voIP] | 
		
	
		
			
				|  |  |  |  | //        let mainQueue = DispatchQueue.main | 
		
	
		
			
				|  |  |  |  | //        let voipRegistry: PKPushRegistry = PKPushRegistry(queue: mainQueue) | 
		
	
		
			
				|  |  |  |  | //        voipRegistry.delegate = self | 
		
	
		
			
				|  |  |  |  | //        voipRegistry.desiredPushTypes = [PKPushType.voIP] | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         return super.application(application, didFinishLaunchingWithOptions: launchOptions) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // Handle updated push credentials | 
		
	
		
			
				|  |  |  |  |     func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) { | 
		
	
		
			
				|  |  |  |  |         print(credentials.token) | 
		
	
		
			
				|  |  |  |  |         let deviceToken = credentials.token.map { String(format: "%02x", $0) }.joined() | 
		
	
		
			
				|  |  |  |  |         //Save deviceToken to your server | 
		
	
		
			
				|  |  |  |  |         SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP(deviceToken) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | //    func pushRegistry(_ registry: PKPushRegistry, didUpdate credentials: PKPushCredentials, for type: PKPushType) { | 
		
	
		
			
				|  |  |  |  | //        print(credentials.token) | 
		
	
		
			
				|  |  |  |  | //        let deviceToken = credentials.token.map { String(format: "%02x", $0) }.joined() | 
		
	
		
			
				|  |  |  |  | //        //Save deviceToken to your server | 
		
	
		
			
				|  |  |  |  | //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP(deviceToken) | 
		
	
		
			
				|  |  |  |  | //    } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) { | 
		
	
		
			
				|  |  |  |  |         print("didInvalidatePushTokenFor") | 
		
	
		
			
				|  |  |  |  |         SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP("") | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | //    func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) { | 
		
	
		
			
				|  |  |  |  | //        print("didInvalidatePushTokenFor") | 
		
	
		
			
				|  |  |  |  | //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.setDevicePushTokenVoIP("") | 
		
	
		
			
				|  |  |  |  | //    } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // Handle incoming pushes | 
		
	
		
			
				|  |  |  |  |     func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { | 
		
	
		
			
				|  |  |  |  |         print("didReceiveIncomingPushWith") | 
		
	
		
			
				|  |  |  |  |         guard type == .voIP else { return } | 
		
	
		
			
				|  |  |  |  |         print(payload.dictionaryPayload) | 
		
	
		
			
				|  |  |  |  | //         let id = payload.dictionaryPayload["id"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  | //         let nameCaller = payload.dictionaryPayload["nameCaller"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  | //         let handle = payload.dictionaryPayload["handle"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  |         let isVideo = payload.dictionaryPayload["isVideo"] as? Bool ?? false | 
		
	
		
			
				|  |  |  |  | // | 
		
	
		
			
				|  |  |  |  | // | 
		
	
		
			
				|  |  |  |  |          let data = flutter_callkit_incoming.Data(id: "1", nameCaller: "Mohemm", handle: "handle", type: isVideo ? 1 : 0) | 
		
	
		
			
				|  |  |  |  | //         data.extra = ["user": "abc@123", "platform": "ios"] | 
		
	
		
			
				|  |  |  |  | //         data.iconName = "Mohemm" | 
		
	
		
			
				|  |  |  |  |         SwiftFlutterCallkitIncomingPlugin.sharedInstance?.showCallkitIncoming(data, fromPushKit: true) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | //    // Handle incoming pushes | 
		
	
		
			
				|  |  |  |  | //    func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { | 
		
	
		
			
				|  |  |  |  | //        print("didReceiveIncomingPushWith") | 
		
	
		
			
				|  |  |  |  | //        guard type == .voIP else { return } | 
		
	
		
			
				|  |  |  |  | //        print(payload.dictionaryPayload) | 
		
	
		
			
				|  |  |  |  | ////         let id = payload.dictionaryPayload["id"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  | ////         let nameCaller = payload.dictionaryPayload["nameCaller"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  | ////         let handle = payload.dictionaryPayload["handle"] as? String ?? "" | 
		
	
		
			
				|  |  |  |  | //        let isVideo = payload.dictionaryPayload["isVideo"] as? Bool ?? false | 
		
	
		
			
				|  |  |  |  | //// | 
		
	
		
			
				|  |  |  |  | //// | 
		
	
		
			
				|  |  |  |  | //         let data = flutter_callkit_incoming.Data(id: "1", nameCaller: "Mohemm", handle: "handle", type: isVideo ? 1 : 0) | 
		
	
		
			
				|  |  |  |  | ////         data.extra = ["user": "abc@123", "platform": "ios"] | 
		
	
		
			
				|  |  |  |  | ////         data.iconName = "Mohemm" | 
		
	
		
			
				|  |  |  |  | //        SwiftFlutterCallkitIncomingPlugin.sharedInstance?.showCallkitIncoming(data, fromPushKit: true) | 
		
	
		
			
				|  |  |  |  | //    } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | } | 
		
	
	
		
			
				
					|  |  |  | 
 |