Skip to content

Commit

Permalink
Merge pull request #91 from ConnectyCube/development
Browse files Browse the repository at this point in the history
release 2.2.2
  • Loading branch information
TatankaConCube committed Feb 21, 2023
2 parents 0f1d2c4 + ca14f17 commit f061443
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 24 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 2.2.2
- (iOS) Fix the crash on the `getLastCallId` method calling;

## 2.2.1

- (Android) Fix receiving the FCM if plugin connected together with `firebase_messaging` plugin;
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
group 'com.connectycube.flutter.connectycube_flutter_call_kit'
version '2.2.1'
version '2.2.2'

buildscript {
ext.kotlin_version = '1.6.21'
Expand Down
80 changes: 59 additions & 21 deletions ios/Classes/SwiftConnectycubeFlutterCallKitPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,23 +63,30 @@ public class SwiftConnectycubeFlutterCallKitPlugin: NSObject, FlutterPlugin {
result?(error == nil)
}
}

//TODO: remove these defaults and get as arguments

public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
print("[SwiftConnectycubeFlutterCallKitPlugin][handle] method: \(call.method)");
let arguments = call.arguments as! Dictionary<String, Any>
if(call.method == "getVoipToken"){
let arguments = call.arguments as? Dictionary<String, Any>
if call.method == "getVoipToken" {
let voipToken = SwiftConnectycubeFlutterCallKitPlugin.voipController.getVoIPToken()
result(voipToken)
}
else if(call.method == "updateConfig"){
else if call.method == "updateConfig" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let ringtone = arguments["ringtone"] as? String
let icon = arguments["icon"] as? String
CallKitController.updateConfig(ringtone: ringtone, icon: icon)

result(true)
}
else if(call.method == "showCallNotification"){
else if call.method == "showCallNotification" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let callId = arguments["session_id"] as! String
let callType = arguments["call_type"] as! Int
let callInitiatorId = arguments["caller_id"] as! Int
Expand All @@ -88,64 +95,95 @@ public class SwiftConnectycubeFlutterCallKitPlugin: NSObject, FlutterPlugin {
let callOpponents = callOpponentsString.components(separatedBy: ",")
.map { Int($0) ?? 0 }
let userInfo = arguments["user_info"] as? String

SwiftConnectycubeFlutterCallKitPlugin.callController.reportIncomingCall(uuid: callId.lowercased(), callType: callType, callInitiatorId: callInitiatorId, callInitiatorName: callInitiatorName, opponents: callOpponents, userInfo: userInfo) { (error) in
print("[SwiftConnectycubeFlutterCallKitPlugin][handle] reportIncomingCall ERROR: \(error?.localizedDescription ?? "none")")
result(error == nil)
}
}
else if(call.method == "reportCallAccepted"){
let callId = arguments["session_id"] as! String

else if call.method == "reportCallAccepted" {
guard let arguments = arguments, let callId = arguments["session_id"] as? String else {
result(FlutterError(code: "invalid_argument", message: "session_id was not provided.", details: nil))
return
}

SwiftConnectycubeFlutterCallKitPlugin.callController.answerCall(uuid: callId)
result(true)
}
else if (call.method == "reportCallFinished"){
else if call.method == "reportCallFinished" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let callId = arguments["session_id"] as! String
let reason = arguments["reason"] as! String


SwiftConnectycubeFlutterCallKitPlugin.callController.reportCallEnded(uuid: UUID(uuidString: callId)!, reason: CallEndedReason.init(rawValue: reason)!);
result(true);
}
else if (call.method == "reportCallEnded"){
else if call.method == "reportCallEnded" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let callId = arguments["session_id"] as! String
SwiftConnectycubeFlutterCallKitPlugin.callController.end(uuid: UUID(uuidString: callId)!)
result(true)
}
else if (call.method == "muteCall"){
else if call.method == "muteCall" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let callId = arguments["session_id"] as! String
let muted = arguments["muted"] as! Bool

SwiftConnectycubeFlutterCallKitPlugin.callController.setMute(uuid: UUID(uuidString: callId)!, muted: muted)
result(true)
}
else if (call.method == "getCallState"){
let callId = arguments["session_id"] as! String
else if call.method == "getCallState" {
guard let arguments = arguments, let callId = arguments["session_id"] as? String else {
result(FlutterError(code: "invalid_argument", message: "session_id was not provided.", details: nil))
return
}

result(SwiftConnectycubeFlutterCallKitPlugin.callController.getCallState(uuid: callId).rawValue)
}
else if (call.method == "setCallState"){
else if call.method == "setCallState" {
guard let arguments = arguments else {
result(FlutterError(code: "invalid_argument", message: "No data was provided.", details: nil))
return
}
let callId = arguments["session_id"] as! String
let callState = arguments["call_state"] as! String

SwiftConnectycubeFlutterCallKitPlugin.callController.setCallState(uuid: callId, callState: callState)
result(true)
}

else if (call.method == "getCallData"){
let callId = arguments["session_id"] as! String
else if call.method == "getCallData" {
guard let arguments = arguments, let callId = arguments["session_id"] as? String else {
result(FlutterError(code: "invalid_argument", message: "session_id was not provided.", details: nil))
return
}

result(SwiftConnectycubeFlutterCallKitPlugin.callController.getCallData(uuid: callId))
}
else if (call.method == "clearCallData"){
let callId = arguments["session_id"] as! String
else if call.method == "clearCallData" {
guard let arguments = arguments, let callId = arguments["session_id"] as? String else {
result(FlutterError(code: "invalid_argument", message: "session_id was not provided.", details: nil))
return
}

SwiftConnectycubeFlutterCallKitPlugin.callController.clearCallData(uuid: callId)
result(true)
}
else if (call.method == "getLastCallId"){
else if call.method == "getLastCallId" {
result(SwiftConnectycubeFlutterCallKitPlugin.callController.currentCallData["session_id"])
}
else {
result(FlutterMethodNotImplemented)
}
}
}
2 changes: 1 addition & 1 deletion ios/connectycube_flutter_call_kit.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
Pod::Spec.new do |s|
s.name = 'connectycube_flutter_call_kit'
s.version = '2.2.1'
s.version = '2.2.2'
s.summary = 'Connectycube Call Kit plugin for flutter.'
s.description = <<-DESC
Connectycube Call Kit plugin for flutter.
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: connectycube_flutter_call_kit
description: A Flutter plugin for displaying call screen when app in background or terminated.
version: 2.2.1
version: 2.2.2
homepage: https://github.com/ConnectyCube/connectycube-flutter-call-kit
issue_tracker: https://github.com/ConnectyCube/connectycube-flutter-call-kit/issues

Expand Down

0 comments on commit f061443

Please sign in to comment.