Skip to content

Commit

Permalink
update PlanetKit-Flutter version up to 0.9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
juheon-jeon-dev committed Dec 6, 2024
1 parent f2e5213 commit 70fc9b9
Show file tree
Hide file tree
Showing 32 changed files with 1,358 additions and 75 deletions.
6 changes: 3 additions & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ android {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
outputs.upToDateWhen {false}
showStandardStreams = true
events "passed", "skipped", "failed", "standardOut", "standardError"
outputs.upToDateWhen { false }
showStandardStreams = true
}
}
}
Expand Down
4 changes: 1 addition & 3 deletions android/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.planet_kit_flutter">
</manifest>
<manifest package="com.example.planet_kit_flutter"></manifest>
61 changes: 58 additions & 3 deletions ios/Classes/PlanetKitFlutterPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,10 @@ public class PlanetKitFlutterPlugin: NSObject, FlutterPlugin {
case "myMediaStatus_isMyAudioMuted":
myMediaStatusPlugin.isMyAudioMutedMyMediaStatus(call: call, result: result)
break
case "myMediaStatus_getMyVideoStatus":
myMediaStatusPlugin.getMyVideoStatus(call: call, result: result)
break


// MARK: conference
case "conference_leaveConference":
Expand Down Expand Up @@ -243,23 +247,65 @@ public class PlanetKitFlutterPlugin: NSObject, FlutterPlugin {
case "conference_isPeersAudioSilenced":
conferencePlugin.isPeersAudioSilenced(call: call, result: result)
break
case "conference_createPeerControl":
conferencePlugin.createPeerControl(call: call, delegate: peerControlPlugin, result: result)
break
case "conference_addMyVideoView":
conferencePlugin.addMyVideoView(call: call, result: result)
break
case "conference_removeMyVideoView":
conferencePlugin.removeMyVideoView(call: call, result: result)
break
case "conference_enableVideo":
conferencePlugin.enableVideo(call: call, result: result)
break
case "conference_disableVideo":
conferencePlugin.disableVideo(call: call, result: result)
break
case "conference_pauseMyVideo":
conferencePlugin.pauseMyVideo(call: call, result: result)
break
case "conference_resumeMyVideo":
conferencePlugin.resumeMyVideo(call: call, result: result)
break
case "conference_getStatistics":
conferencePlugin.getStatistics(call: call, result: result)
break

// MARK: conference peer
case "conferencePeer_getVideoStatus":
conferencePeerPlugin.getVideoStatus(call: call, result: result)
break
case "conferencePeer_getHoldStatus":
conferencePeerPlugin.getHoldStatus(call: call, result: result)
break
case "conferencePeer_isMuted":
conferencePeerPlugin.isMuted(call: call, result: result)
break
case "conference_createPeerControl":
conferencePlugin.createPeerControl(call: call, delegate: peerControlPlugin, result: result)
case "conferencePeer_getScreenShareState":
conferencePeerPlugin.getScreenShareState(call: call, result: result)
break
// MARK: peer control


// MARK: peer control
case "peerControl_register":
peerControlPlugin.register(call: call, result: result)
break
case "peerControl_unregister":
peerControlPlugin.unregister(call: call, result: result)
break
case "peerControl_startVideo":
peerControlPlugin.startVideo(call: call, result: result)
break
case "peerControl_stopVideo":
peerControlPlugin.stopVideo(call: call, result: result)
break
case "peerControl_startScreenShare":
peerControlPlugin.startScreenShare(call: call, result: result)
break
case "peerControl_stopScreenShare":
peerControlPlugin.stopScreenShare(call: call, result: result)
break

// MARK: camera
case "camera_startPreview":
Expand Down Expand Up @@ -469,6 +515,8 @@ public class PlanetKitFlutterPlugin: NSObject, FlutterPlugin {

let joinConferenceParam = PlanetKitConferenceParam(myUserId: myPlanetKitUserId, roomId: param.roomId, roomServiceId: param.roomServiceId, displayName: nil, delegate: conferencePlugin, accessToken: param.accessToken)

joinConferenceParam.mediaType = param.mediaType

var settings = PlanetKitJoinConferenceSettingBuilder()

if let endTonePath = param.endTonePath, let key = registrar?.lookupKey(forAsset: endTonePath), let url = Bundle.main.url(forResource: key, withExtension: nil), let resultSettings = try? settings.withSetEndToneKey(fileResourceUrl: url) {
Expand All @@ -492,6 +540,13 @@ public class PlanetKitFlutterPlugin: NSObject, FlutterPlugin {
settings = settings.withAudioDescriptionUpdateIntervalKey(interval: interval)
}

if let screenShareKey = param.screenShareKey {
PlanetKitLog.v("#flutter \(#function) screenShareKey: \(screenShareKey)")
settings = settings.withEnableScreenShareKey(broadcastPort: UInt16(screenShareKey.broadcastPort), broadcastPeerToken: screenShareKey.broadcastPeerToken, broadcastMyToken: screenShareKey.broadcastMyToken)
}

settings = settings.withEnableStatisticsKey(enable: param.enableStatistics)

let joinConferenceResult = PlanetKitManager.shared.joinConference(param: joinConferenceParam, settings: settings.build())

if joinConferenceResult.reason == .none, let conference = joinConferenceResult.conference {
Expand Down
2 changes: 1 addition & 1 deletion ios/Classes/Statistics/PlanetKitFlutterStatistics.swift
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ extension PlanetKitStatistics.Video: Encodable {

extension PlanetKitUserId: Encodable {
enum CodingKeys: String, CodingKey {
case id
case id = "userId"
case serviceId
}

Expand Down
20 changes: 10 additions & 10 deletions ios/Classes/call/PlanetKitFlutterCallPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ extension PlanetKitCall: PluginInstance {
}
}

fileprivate class VideoOutputDelegates: PlanetKitVideoOutputDelegate {
class VideoOutputDelegates: PlanetKitVideoOutputDelegate {
private var delegates: [Weak<PlanetKitVideoOutputDelegate>] = []
private let lock = NSLock()

Expand Down Expand Up @@ -133,7 +133,7 @@ class PlanetKitFlutterCallPlugin {
func muteMyAudio(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: MuteMyAudioParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.MuteMyAudioParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down Expand Up @@ -299,7 +299,7 @@ class PlanetKitFlutterCallPlugin {
func requestPeerMute(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: RequestPeerMuteParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.RequestPeerMuteParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand All @@ -318,7 +318,7 @@ class PlanetKitFlutterCallPlugin {
func silencePeerAudio(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: SilencePeerAudioParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.SilencePeerAudioParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down Expand Up @@ -644,7 +644,7 @@ extension PlanetKitFlutterCallPlugin {
func addMyVideoView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: AddVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.AddVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down Expand Up @@ -674,7 +674,7 @@ extension PlanetKitFlutterCallPlugin {
func addPeerVideoView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: AddVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.AddVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand All @@ -700,7 +700,7 @@ extension PlanetKitFlutterCallPlugin {

func removeMyVideoView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: RemoveVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.RemoveVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down Expand Up @@ -735,7 +735,7 @@ extension PlanetKitFlutterCallPlugin {

func removePeerVideoView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: RemoveVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.RemoveVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down Expand Up @@ -795,7 +795,7 @@ extension PlanetKitFlutterCallPlugin {
func addPeerScreenShareView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: AddVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.AddVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand All @@ -818,7 +818,7 @@ extension PlanetKitFlutterCallPlugin {
func removePeerScreenShareView(call: FlutterMethodCall, result: @escaping FlutterResult) {
PlanetKitLog.v("#flutter \(#function) \(String(describing: call.arguments))")

let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: RemoveVideoViewParam.self)
let param = PlanetKitFlutterPlugin.decodeMethodCallArg(call: call, codable: CallParams.RemoveVideoViewParam.self)

guard let call = nativeInstances.get(key: param.callId) as? PlanetKitCall else {
PlanetKitLog.e("#flutter \(#function) call not found \(param.callId)")
Expand Down
53 changes: 27 additions & 26 deletions ios/Classes/call/PlanetKitFlutterPluginTypes+Call.swift
Original file line number Diff line number Diff line change
Expand Up @@ -433,30 +433,31 @@ struct PutHookedAudioBackParam: Codable {
let audioId: String
}


struct MuteMyAudioParam: Codable {
let callId: String
let mute: Bool
}

struct RequestPeerMuteParam: Codable {
let callId: String
let mute: Bool
}

struct SilencePeerAudioParam: Codable {
let callId: String
let silent: Bool
}


// MARK: video param
struct AddVideoViewParam: Decodable {
let callId: String
let viewId: String
}

struct RemoveVideoViewParam: Decodable {
let callId: String
let viewId: String
struct CallParams {
struct MuteMyAudioParam: Codable {
let callId: String
let mute: Bool
}

struct RequestPeerMuteParam: Codable {
let callId: String
let mute: Bool
}

struct SilencePeerAudioParam: Codable {
let callId: String
let silent: Bool
}


// MARK: video param
struct AddVideoViewParam: Decodable {
let callId: String
let viewId: String
}

struct RemoveVideoViewParam: Decodable {
let callId: String
let viewId: String
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class PlanetKitFlutterConferencePeerPlugin {

guard let peer = nativeInstances.get(key: id) as? PlanetKitConferencePeer else {
PlanetKitLog.e("#flutter \(#function) call not found \(id)")
result(false)
result(nil)
return
}

Expand All @@ -66,4 +66,41 @@ class PlanetKitFlutterConferencePeerPlugin {

result(peer.isMuted)
}

func getVideoStatus(call: FlutterMethodCall, result: @escaping FlutterResult) {
let id = call.arguments as! String

guard let peer = nativeInstances.get(key: id) as? PlanetKitConferencePeer else {
PlanetKitLog.e("#flutter \(#function) call not found \(id)")
result(nil)
return
}

guard let videoStatus = try? peer.videoStatus(subgroupName: nil) else {
PlanetKitLog.e("#flutter \(#function) videoStatus is nil")
result(nil)
return
}

let encodedResponse = PlanetKitFlutterPlugin.encode(data: videoStatus)
result(encodedResponse)
}

func getScreenShareState(call: FlutterMethodCall, result: @escaping FlutterResult) {
let id = call.arguments as! String

guard let peer = nativeInstances.get(key: id) as? PlanetKitConferencePeer else {
PlanetKitLog.e("#flutter \(#function) call not found \(id)")
result(nil)
return
}

guard let screenShareState = try? peer.screenShareStatus(subgroupName: nil).state else {
PlanetKitLog.e("#flutter \(#function) screenShareState is nil")
result(nil)
return
}

result(screenShareState.rawValue)
}
}
Loading

0 comments on commit 70fc9b9

Please sign in to comment.