diff --git a/.changeset/fuzzy-kiwis-ask.md b/.changeset/fuzzy-kiwis-ask.md new file mode 100644 index 00000000..4668b8db --- /dev/null +++ b/.changeset/fuzzy-kiwis-ask.md @@ -0,0 +1,5 @@ +--- +'@theoplayer/react-native-analytics-bitmovin': patch +--- + +Hooked up the React Native Bitmovin connector API to the internal Bitmovin collector. diff --git a/bitmovin/ios/Connector/BitmovinConnector.swift b/bitmovin/ios/Connector/BitmovinConnector.swift index 9efbd6da..b668b1c0 100644 --- a/bitmovin/ios/Connector/BitmovinConnector.swift +++ b/bitmovin/ios/Connector/BitmovinConnector.swift @@ -5,42 +5,42 @@ import Foundation import THEOplayerSDK import CoreCollector -// TODO: import THEOplayerCollector // Update when THEOplayerCollector module is available through cocoapods. +import THEOplayerCollector class BitmovinConnector { - // TODO: private let theoplayerCollector: THEOplayerCollector.THEOplayerCollectorApi + private let theoplayerCollector: THEOplayerCollector.THEOplayerCollectorApi init(player: THEOplayer, bitmovinConfig: [String:Any], defaultMetadata: [String:Any]? = nil) { let config: AnalyticsConfig = BitmovinAdapter.parseConfig(bitmovinConfig) let metadata: DefaultMetadata = BitmovinAdapter.parseDefaultMetadata(defaultMetadata) - // TODO: self.theoplayerCollector = THEOplayerCollector.THEOplayerCollectorFactory.create(config: config, defaultMetadata: metadata) - // TODO: self.theoplayerCollector.attach(to: player) - log("TODO: Initialized Bitmovin Connector with config: \(bitmovinConfig) and default metadata: \(defaultMetadata ?? [:])") + self.theoplayerCollector = THEOplayerCollector.THEOplayerCollectorFactory.create(config: config, defaultMetadata: metadata) + self.theoplayerCollector.attach(to: player) + log("Bitmovin Connector initialised with config: \(bitmovinConfig) and default metadata: \(defaultMetadata ?? [:])") } func updateSourceMetadata(_ sourceMetadata: [String:Any]) -> Void { - // TODO: self.theoplayerCollector.sourceMetadata = BitmovinAdapter.parseSourceMetadata(sourceMetadata) - log("TODO: Updated source metadata: \(sourceMetadata)") + self.theoplayerCollector.sourceMetadata = BitmovinAdapter.parseSourceMetadata(sourceMetadata) + log("Updated source metadata: \(sourceMetadata)") } func programChange(_ sourceMetadata: [String:Any]) -> Void { - // let newSourceMetadata = BitmovinAdapter.parseSourceMetadata(sourceMetadata) - // TODO: self.theoplayerCollector.programChange(newSourceMetadata) - log("TODO: Notifying program change with source metadata: \(sourceMetadata)") + let newSourceMetadata = BitmovinAdapter.parseSourceMetadata(sourceMetadata) + self.theoplayerCollector.programChange(newSourceMetadata: newSourceMetadata) + log("Notified program change with new source metadata: \(sourceMetadata)") } func updateCustomMetadata(_ customData: [String:Any]) -> Void { - // TODO: self.theoplayerCollector.customData = BitmovinAdapter.parseCustomData(customData) - log("TODO: Updated custom data: \(customData)") + self.theoplayerCollector.customData = BitmovinAdapter.parseCustomData(customData) + log("Updated custom data: \(customData)") } func sendCustomDataEvent(_ customData: [String:Any]) -> Void { - log("TODO: Sending custom data event is not yet implemented.") - // TODO: Implement when THEOplayerCollector supports sending custom data events + self.theoplayerCollector.sendCustomDataEvent(with: BitmovinAdapter.parseCustomData(customData)) + log("Custom data event send with custom data: \(customData)") } func destroy() -> Void { - log("TODO: Destroying Bitmovin Connector is not yet implemented.") - // TODO: Implement when THEOplayerCollector supports detaching + self.theoplayerCollector.detach() + log("Bitmovin Connector destroyed.") } } diff --git a/bitmovin/react-native-theoplayer-bitmovin.podspec b/bitmovin/react-native-theoplayer-bitmovin.podspec index 97f0aa24..7ac138b3 100644 --- a/bitmovin/react-native-theoplayer-bitmovin.podspec +++ b/bitmovin/react-native-theoplayer-bitmovin.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "react-native-theoplayer" - s.dependency "BitmovinAnalyticsCollector/Core", "3.21.0-a.5" + s.dependency "BitmovinAnalyticsCollector/THEOplayer", "3.21.0-a.11" # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0. # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.