Skip to content

Commit

Permalink
fixes opentok#199
Browse files Browse the repository at this point in the history
  • Loading branch information
msach22 committed Nov 27, 2018
1 parent 5a2dfd7 commit 26d2f4f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 76 deletions.
112 changes: 42 additions & 70 deletions ios/OpenTokReactNative/OTSessionManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -431,119 +431,95 @@ extension OTSessionManager: OTSubscriberDelegate {
}

func subscriber(_ subscriber: OTSubscriberKit, didFailWithError error: OTError) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["error"] = EventUtils.prepareJSErrorEventData(error);
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)didFailWithError", data: subscriberInfo)
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["error"] = EventUtils.prepareJSErrorEventData(error);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)didFailWithError", data: subscriberInfo)
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)didFailWithError", data: subscriberInfo)
printLogs("OTRN: Subscriber failed: \(error.localizedDescription)")
}
}

extension OTSessionManager: OTSubscriberKitNetworkStatsDelegate {
func subscriber(_ subscriber: OTSubscriberKit, videoNetworkStatsUpdated stats: OTSubscriberKitVideoNetworkStats) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["videoStats"] = EventUtils.prepareSubscriberVideoNetworkStatsEventData(stats);
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)videoNetworkStatsUpdated", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["videoStats"] = EventUtils.prepareSubscriberVideoNetworkStatsEventData(stats);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)videoNetworkStatsUpdated", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)videoNetworkStatsUpdated", data: subscriberInfo);
}

func subscriber(_ subscriber: OTSubscriberKit, audioNetworkStatsUpdated stats: OTSubscriberKitAudioNetworkStats) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["audioStats"] = EventUtils.prepareSubscriberAudioNetworkStatsEventData(stats);
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)audioNetworkStatsUpdated", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["audioStats"] = EventUtils.prepareSubscriberAudioNetworkStatsEventData(stats);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)audioNetworkStatsUpdated", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)audioNetworkStatsUpdated", data: subscriberInfo);
}

func subscriberVideoEnabled(_ subscriber: OTSubscriberKit, reason: OTSubscriberVideoEventReason) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["reason"] = Utils.convertOTSubscriberVideoEventReasonToString(reason);
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoEnabled", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["reason"] = Utils.convertOTSubscriberVideoEventReasonToString(reason);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoEnabled", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoEnabled", data: subscriberInfo);
printLogs("OTRN: subscriberVideoEnabled")
}

func subscriberVideoDisabled(_ subscriber: OTSubscriberKit, reason: OTSubscriberVideoEventReason) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["reason"] = Utils.convertOTSubscriberVideoEventReasonToString(reason);
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisabled", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["reason"] = Utils.convertOTSubscriberVideoEventReasonToString(reason);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisabled", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisabled", data: subscriberInfo);
printLogs("OTRN: subscriberVideoDisabled")
}

func subscriberVideoDisableWarning(_ subscriber: OTSubscriberKit) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarning", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarning", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarning", data: subscriberInfo);
printLogs("OTRN: subscriberVideoDisableWarning")
}

func subscriberVideoDisableWarningLifted(_ subscriber: OTSubscriberKit) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarningLifted", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarningLifted", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDisableWarningLifted", data: subscriberInfo);
printLogs("OTRN: subscriberVideoDisableWarningLifted")
}

func subscriberVideoDataReceived(_ subscriber: OTSubscriber) {
let streamId = Utils.getStreamIdBySubscriber(subscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDataReceived", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDataReceived", data: subscriberInfo);
return
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)subscriberVideoDataReceived", data: subscriberInfo);
}

func subscriberDidReconnect(toStream subscriber: OTSubscriberKit) {
Expand Down Expand Up @@ -574,17 +550,13 @@ extension OTSessionManager: OTSubscriberKitNetworkStatsDelegate {

extension OTSessionManager: OTSubscriberKitAudioLevelDelegate {
func subscriber(_ subscriber: OTSubscriberKit, audioLevelUpdated audioLevel: Float) {
let streamId = Utils.getStreamIdBySubscriber(subscriber as! OTSubscriber);
var subscriberInfo: Dictionary<String, Any> = [:];
if (streamId.count > 0) {
subscriberInfo["audioLevel"] = audioLevel;
guard let stream = OTRN.sharedState.subscriberStreams[streamId] else {
self.emitEvent("\(EventUtils.subscriberPreface)audioLevelUpdated", data: subscriberInfo);
return
}
var subscriberInfo: Dictionary<String, Any> = [:];
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
subscriberInfo["audioLevel"] = audioLevel;
guard let stream = subscriber.stream else {
self.emitEvent("\(EventUtils.subscriberPreface)audioLevelUpdated", data: subscriberInfo);
return;
}
subscriberInfo["stream"] = EventUtils.prepareJSStreamEventData(stream);
self.emitEvent("\(EventUtils.subscriberPreface)audioLevelUpdated", data: subscriberInfo);
}
}
7 changes: 1 addition & 6 deletions ios/OpenTokReactNative/Utils/Utils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,7 @@ class Utils {
guard let publisherId = publisherIds.first else { return ""; }
return publisherId.key;
}

static func getStreamIdBySubscriber(_ subscriber: OTSubscriber) -> String {
let streamIds = OTRN.sharedState.subscribers.filter {$0.value == subscriber}
guard let streamId = streamIds.first else { return ""; }
return streamId.key;
}


static func convertOTSubscriberVideoEventReasonToString(_ reason: OTSubscriberVideoEventReason) -> String {
switch reason {
Expand Down

0 comments on commit 26d2f4f

Please sign in to comment.