react-native-firework-sdk 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FireworkVideoUI.xcframework/Info.plist +40 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI-Swift.h +280 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +18 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.abi.json +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.private.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/module.modulemap +11 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Headers/FireworkVideoUI-Swift.h +556 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +18 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.abi.json +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/module.modulemap +11 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +245 -0
- package/README.md +1 -1
- package/android/build.gradle +1 -2
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/models/FWEventName.kt +3 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +10 -6
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +14 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +11 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +8 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +19 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductDeserializer.kt +11 -11
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +5 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +5 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +45 -4
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +112 -36
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +7 -4
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +26 -32
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +6 -0
- package/ios/Components/StoryBlock.swift +5 -6
- package/ios/Components/StoryBlockManager.m +1 -0
- package/ios/Components/StoryBlockManager.swift +4 -0
- package/ios/Components/VideoFeed.swift +12 -8
- package/ios/Components/VideoFeedManager.m +1 -0
- package/ios/Components/VideoFeedManager.swift +4 -0
- package/ios/Components/VideoPlayerConfiguration.swift +1 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +261 -471
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.docc/FireworkVideoUI.md +13 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.h +18 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/AppLanguageManager.swift +147 -0
- package/ios/{Utils/AppLanguage/Bundle+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift} +7 -7
- package/ios/{Utils/AppLanguage/NumberFormatter+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/NumberFormatter+AppLanguage.swift} +5 -5
- package/ios/{Utils/AppLanguage/URLSession+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift} +7 -7
- package/ios/{Utils/AppLanguage/UIImageView+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift} +8 -8
- package/ios/{Utils/AppLanguage/UILabel+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UILabel+AppLanguage.swift} +17 -17
- package/ios/{Utils/AppLanguage/UITextField+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextField+AppLanguage.swift} +16 -16
- package/ios/{Utils/AppLanguage/UITextView+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextView+AppLanguage.swift} +16 -16
- package/ios/{Utils/AppLanguage/UIView+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIView+AppLanguage.swift} +7 -7
- package/ios/{Utils/AppLanguage/UIViewController+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIViewController+AppLanguage.swift} +19 -5
- package/ios/{Utils/AppLanguage/UIWindow+FWSwizzle.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIWindow+AppLanguage.swift} +5 -5
- package/ios/{Utils/AppLanguage/FWLanguageUtil.swift → FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/LanguageUtil.swift} +4 -4
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/Foundation/NSObject+LayoutFlip.swift +42 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/CALayer+LayoutFlip.swift +160 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UILabel+LayoutFlip.swift +35 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UIView+LayoutFlip.swift +199 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/LayoutFlipManager.swift +59 -0
- package/ios/{Utils/Extensions/DispatchQueue+FWOnce.swift → FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/DispatchQueue+Once.swift} +4 -4
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/String+Base64.swift +18 -0
- package/ios/{Utils/Extensions/UIView+FWUIHierarchy.swift → FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/UIKit/UIView+UIHierarchy.swift} +4 -5
- package/ios/{Utils/FWSwizzleUtil.swift → FireworkVideoUI/FireworkVideoUI/Sources/Utils/Swizzle.swift} +2 -2
- package/ios/FireworkVideoUI/FireworkVideoUI.xcodeproj/project.pbxproj +766 -0
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/contents.xcworkspacedata +10 -0
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/FireworkVideoUI/FireworkVideoUITests/FireworkVideoUITests.swift +37 -0
- package/ios/FireworkVideoUI/Podfile +15 -0
- package/ios/FireworkVideoUI/Podfile.lock +16 -0
- package/ios/Models/NativeToRN/FireworkEventName.swift +4 -0
- package/ios/Models/NativeToRN/FireworkSDK+Json.swift +5 -1
- package/ios/Models/RNToNative/RCTConvert+StoryBlock.swift +2 -1
- package/ios/Models/RNToNative/RCTConvert+VideoFeed.swift +2 -1
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +8 -100
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +34 -16
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +23 -7
- package/ios/Modules/FireworkSDKModule/SDKInitOptions.swift +0 -1
- package/ios/Modules/LiveStream/LiveStreamModule.swift +1 -0
- package/ios/Modules/Shopping/ProductInfoViewConfiguration.swift +0 -8
- package/ios/Modules/Shopping/ShoppingModule.swift +0 -18
- package/ios/Support/MultiHostStreaming/FWMultiHostStreaming.podspec +4 -6
- package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +4 -1
- package/ios/scripts/react_native_firework_sdk_pods.rb +22 -26
- package/lib/commonjs/FireworkSDK.js +40 -17
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js +2 -2
- package/lib/commonjs/LiveStream.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +1 -1
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +9 -9
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +6 -4
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/FWEventName.js +1 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -1
- package/lib/commonjs/models/VideoPlaybackEventName.js +3 -0
- package/lib/commonjs/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/module/FireworkSDK.js +39 -17
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js +2 -2
- package/lib/module/LiveStream.js.map +1 -1
- package/lib/module/VideoShopping.js +1 -1
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +9 -7
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +6 -4
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/FWEventName.js +1 -0
- package/lib/module/models/FWEventName.js.map +1 -1
- package/lib/module/models/VideoPlaybackEventName.js +3 -0
- package/lib/module/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/typescript/FireworkSDK.d.ts +8 -4
- package/lib/typescript/LiveStream.d.ts +2 -2
- package/lib/typescript/VideoShopping.d.ts +1 -1
- package/lib/typescript/components/StoryBlock.d.ts +7 -0
- package/lib/typescript/components/VideoFeed.d.ts +7 -0
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/models/FWEventName.d.ts +1 -0
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +0 -31
- package/lib/typescript/models/SDKInitOptions.d.ts +6 -1
- package/lib/typescript/models/StoryBlockSource.d.ts +1 -1
- package/lib/typescript/models/VideoFeedSource.d.ts +1 -1
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +16 -0
- package/lib/typescript/models/VideoPlaybackEventName.d.ts +13 -1
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +4 -0
- package/package.json +7 -2
- package/react-native-firework-sdk.podspec +10 -5
- package/src/FireworkSDK.ts +41 -15
- package/src/LiveStream.ts +2 -2
- package/src/VideoShopping.ts +1 -1
- package/src/components/StoryBlock.tsx +12 -3
- package/src/components/VideoFeed.tsx +12 -4
- package/src/index.ts +0 -2
- package/src/models/FWEventName.ts +1 -0
- package/src/models/ProductInfoViewConfiguration.ts +0 -32
- package/src/models/SDKInitOptions.ts +6 -1
- package/src/models/StoryBlockSource.ts +2 -1
- package/src/models/VideoFeedSource.ts +2 -1
- package/src/models/VideoPlaybackDetails.ts +16 -0
- package/src/models/VideoPlaybackEventName.ts +13 -1
- package/src/models/VideoPlayerConfiguration.ts +4 -0
- package/ios/Utils/AppLanguage/FWAppLanguageManager.swift +0 -139
- package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.h +0 -25
- package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.m +0 -75
- package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.h +0 -21
- package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.m +0 -124
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.h +0 -11
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.m +0 -86
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.h +0 -16
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.m +0 -55
- package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.h +0 -18
- package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.m +0 -39
- package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.h +0 -54
- package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.m +0 -141
- package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.h +0 -16
- package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.m +0 -20
- package/ios/Utils/FWRTL/Classes/Utils/FWRTLDefinitions.h +0 -52
- package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.h +0 -19
- package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.m +0 -49
- package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.h +0 -21
- package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.m +0 -38
- package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.h +0 -18
- package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.m +0 -43
- /package/ios/Support/MultiHostStreaming/{src → Sources}/MultiHostStreamingSDK.swift +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FireworkVideoUITests.swift
|
|
3
|
+
// FireworkVideoUITests
|
|
4
|
+
//
|
|
5
|
+
// Created by linjie jiang on 4/25/23.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import XCTest
|
|
9
|
+
@testable import FireworkVideoUI
|
|
10
|
+
|
|
11
|
+
final class FireworkVideoUITests: XCTestCase {
|
|
12
|
+
|
|
13
|
+
override func setUpWithError() throws {
|
|
14
|
+
// Put setup code here. This method is called before the invocation of each test method in the class.
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
override func tearDownWithError() throws {
|
|
18
|
+
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
func testExample() throws {
|
|
22
|
+
// This is an example of a functional test case.
|
|
23
|
+
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
|
24
|
+
// Any test you write for XCTest can be annotated as throws and async.
|
|
25
|
+
// Mark your test throws to produce an unexpected failure when your test encounters an uncaught error.
|
|
26
|
+
// Mark your test async to allow awaiting for asynchronous code to complete.
|
|
27
|
+
// Check the results with assertions afterwards.
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
func testPerformanceExample() throws {
|
|
31
|
+
// This is an example of a performance test case.
|
|
32
|
+
self.measure {
|
|
33
|
+
// Put the code you want to measure the time of here.
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Uncomment the next line to define a global platform for your project
|
|
2
|
+
platform :ios, '12.1'
|
|
3
|
+
|
|
4
|
+
target 'FireworkVideoUI' do
|
|
5
|
+
# Comment the next line if you don't want to use dynamic frameworks
|
|
6
|
+
use_frameworks!
|
|
7
|
+
|
|
8
|
+
# Pods for FireworkVideoUI
|
|
9
|
+
pod 'FireworkVideo', '1.9.0'
|
|
10
|
+
|
|
11
|
+
target 'FireworkVideoUITests' do
|
|
12
|
+
# Pods for testing
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
PODS:
|
|
2
|
+
- FireworkVideo (1.9.0)
|
|
3
|
+
|
|
4
|
+
DEPENDENCIES:
|
|
5
|
+
- FireworkVideo (= 1.9.0)
|
|
6
|
+
|
|
7
|
+
SPEC REPOS:
|
|
8
|
+
trunk:
|
|
9
|
+
- FireworkVideo
|
|
10
|
+
|
|
11
|
+
SPEC CHECKSUMS:
|
|
12
|
+
FireworkVideo: 77edd3eb890c09a0656c8599bee874a38aefec53
|
|
13
|
+
|
|
14
|
+
PODFILE CHECKSUM: fc28c17eb5d44ab66c794e84553cdc6abe3b5426
|
|
15
|
+
|
|
16
|
+
COCOAPODS: 1.12.1
|
|
@@ -17,16 +17,20 @@ enum FWEventName: String, CaseIterable {
|
|
|
17
17
|
case videoLaunchBehaviorUpdated = "fw:video-launch-behavior-updated" // emitted in JS side
|
|
18
18
|
case adBadgeConfigurationUpdated = "fw:ad-badge-configuration-updated" // emitted in JS side
|
|
19
19
|
case appLanguageUpdated = "fw:app-language-updated" // emitted in JS side
|
|
20
|
+
case nativeAppLanguageUpdated = "fw:native-app-language-updated" // emitted in native side
|
|
20
21
|
case logMessage = "fw:log-message"
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
enum VideoPlaybackSubEventName: String {
|
|
24
25
|
case impression = "fw:video:impression"
|
|
25
26
|
case start = "fw:video:start"
|
|
27
|
+
case pause = "fw:video:pause"
|
|
28
|
+
case resume = "fw:video:resume"
|
|
26
29
|
case firstQuartile = "fw:video:first-quartile"
|
|
27
30
|
case midpoint = "fw:video:midpoint"
|
|
28
31
|
case thirdQuartile = "fw:video:third-quartile"
|
|
29
32
|
case complete = "fw:video:complete"
|
|
33
|
+
case adStart = "fw:video:ad-start"
|
|
30
34
|
case adEnd = "fw:video:ad-end"
|
|
31
35
|
case clickCTA = "fw:video:click-cta"
|
|
32
36
|
case clickShare = "fw:video:click-share"
|
|
@@ -34,7 +34,11 @@ extension VideoPlaybackDetails {
|
|
|
34
34
|
"width": playerSize.width,
|
|
35
35
|
"height": playerSize.height
|
|
36
36
|
],
|
|
37
|
-
"hasCTA": hasCTA
|
|
37
|
+
"hasCTA": hasCTA,
|
|
38
|
+
"progress": progress,
|
|
39
|
+
"ctaActionType": ctaActionType ?? "",
|
|
40
|
+
"ctaActionURL": ctaActionURL ?? "",
|
|
41
|
+
"feedId": feedId ?? "",
|
|
38
42
|
]
|
|
39
43
|
}
|
|
40
44
|
}
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
// Created by Big Bear Xiong on 2022/4/21.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
|
-
// swiftlint:disable file_length
|
|
9
|
-
|
|
10
8
|
import FireworkVideo
|
|
11
9
|
|
|
12
10
|
private let FWExitButtonImageNames: [String] = [
|
|
@@ -231,20 +229,10 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
231
229
|
func startFloatingPlayer(
|
|
232
230
|
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
233
231
|
) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if playerInfo.mode == .fullscreen {
|
|
240
|
-
do {
|
|
241
|
-
try playerInfo.playerVC.startPictureInPicture()
|
|
242
|
-
resolver(true)
|
|
243
|
-
} catch {
|
|
244
|
-
resolver(false)
|
|
245
|
-
}
|
|
246
|
-
} else {
|
|
247
|
-
// current player is already in floating mode.
|
|
232
|
+
do {
|
|
233
|
+
try PictureInPictureController.start()
|
|
234
|
+
resolver(true)
|
|
235
|
+
} catch {
|
|
248
236
|
resolver(false)
|
|
249
237
|
}
|
|
250
238
|
}
|
|
@@ -303,77 +291,6 @@ extension FWNavigatorModule {
|
|
|
303
291
|
return nil
|
|
304
292
|
}
|
|
305
293
|
|
|
306
|
-
private static func getWindowList() -> [UIWindow] {
|
|
307
|
-
var windowList: [UIWindow] = []
|
|
308
|
-
if #available(iOS 13.0, *) {
|
|
309
|
-
for scene in UIApplication.shared.connectedScenes {
|
|
310
|
-
if let currentSene = scene as? UIWindowScene {
|
|
311
|
-
for window in currentSene.windows {
|
|
312
|
-
windowList.append(window)
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
} else {
|
|
317
|
-
for window in UIApplication.shared.windows {
|
|
318
|
-
windowList.append(window)
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
return windowList
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
private static func getFurthestAncestorController(_ controller: UIViewController) -> UIViewController {
|
|
326
|
-
guard let parentVC = controller.parent else {
|
|
327
|
-
return controller
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
return getFurthestAncestorController(parentVC)
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
private static func getPlayerViewController(_ viewController: UIViewController) -> PlayerViewController? {
|
|
334
|
-
if let playerVC = viewController as? PlayerViewController {
|
|
335
|
-
return playerVC
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
for childVC in viewController.children {
|
|
339
|
-
if let playerVC = getPlayerViewController(childVC) {
|
|
340
|
-
return playerVC
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
return nil
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
private static func getPlayerInfo() -> PlayerInfo? {
|
|
348
|
-
let windowList: [UIWindow] = getWindowList()
|
|
349
|
-
|
|
350
|
-
if let floatingPlayerWindow = windowList.first(where: { window in
|
|
351
|
-
NSStringFromClass(type(of: window)) == "FireworkVideo.FloatingPlayerController"
|
|
352
|
-
}) {
|
|
353
|
-
if let rootVC = floatingPlayerWindow.rootViewController,
|
|
354
|
-
let playerVC = getPlayerViewController(rootVC) {
|
|
355
|
-
return PlayerInfo(playerVC: playerVC, mode: .floating)
|
|
356
|
-
}
|
|
357
|
-
return nil
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
if let keyWindow = windowList.first(where: { window in
|
|
361
|
-
return window.isKeyWindow
|
|
362
|
-
}) {
|
|
363
|
-
if let rootVC = keyWindow.rootViewController,
|
|
364
|
-
let presentedVC = rootVC.presentedViewController {
|
|
365
|
-
let furthestAncestorController = getFurthestAncestorController(presentedVC)
|
|
366
|
-
if let playerVC = getPlayerViewController(furthestAncestorController) {
|
|
367
|
-
return PlayerInfo(playerVC: playerVC, mode: .fullscreen)
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
return nil
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
return nil
|
|
375
|
-
}
|
|
376
|
-
|
|
377
294
|
private static func isIOSSDKViewController(_ controller: UIViewController?) -> Bool {
|
|
378
295
|
guard let controller = controller else {
|
|
379
296
|
return false
|
|
@@ -390,19 +307,10 @@ extension FWNavigatorModule {
|
|
|
390
307
|
|
|
391
308
|
extension FWNavigatorModule {
|
|
392
309
|
static func stopFloatingPlayer() -> Bool {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
if playerInfo.mode == .floating {
|
|
398
|
-
do {
|
|
399
|
-
try playerInfo.playerVC.stopPictureInPicture()
|
|
400
|
-
return true
|
|
401
|
-
} catch {
|
|
402
|
-
return false
|
|
403
|
-
}
|
|
404
|
-
} else {
|
|
405
|
-
// current player is in fullscreen player
|
|
310
|
+
do {
|
|
311
|
+
try PictureInPictureController.stop()
|
|
312
|
+
return true
|
|
313
|
+
} catch {
|
|
406
314
|
return false
|
|
407
315
|
}
|
|
408
316
|
}
|
|
@@ -9,14 +9,6 @@ import FireworkVideo
|
|
|
9
9
|
import Foundation
|
|
10
10
|
|
|
11
11
|
extension FireworkSDKModule: FireworkVideoPlaybackDelegate {
|
|
12
|
-
func fireworkVideoDidPause(_ videoPlayback: VideoPlaybackDetails) {
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
func fireworkVideoDidResume(_ videoPlayback: VideoPlaybackDetails) {
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
12
|
func fireworkVideoDidRecordImpression(_ videoPlayback: VideoPlaybackDetails) {
|
|
21
13
|
guard enableVideoPlayBackEvent else { return }
|
|
22
14
|
sendEvent(
|
|
@@ -37,6 +29,26 @@ extension FireworkSDKModule: FireworkVideoPlaybackDelegate {
|
|
|
37
29
|
])
|
|
38
30
|
}
|
|
39
31
|
|
|
32
|
+
func fireworkVideoDidPause(_ videoPlayback: VideoPlaybackDetails) {
|
|
33
|
+
guard enableVideoPlayBackEvent else { return }
|
|
34
|
+
sendEvent(
|
|
35
|
+
withName: FWEventName.videoPlayback.rawValue,
|
|
36
|
+
body: [
|
|
37
|
+
"eventName": VideoPlaybackSubEventName.pause.rawValue,
|
|
38
|
+
"info": videoPlayback.jsObject
|
|
39
|
+
])
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
func fireworkVideoDidResume(_ videoPlayback: VideoPlaybackDetails) {
|
|
43
|
+
guard enableVideoPlayBackEvent else { return }
|
|
44
|
+
sendEvent(
|
|
45
|
+
withName: FWEventName.videoPlayback.rawValue,
|
|
46
|
+
body: [
|
|
47
|
+
"eventName": VideoPlaybackSubEventName.resume.rawValue,
|
|
48
|
+
"info": videoPlayback.jsObject
|
|
49
|
+
])
|
|
50
|
+
}
|
|
51
|
+
|
|
40
52
|
func fireworkVideoReachedFirstQuartile(_ videoPlayback: VideoPlaybackDetails) {
|
|
41
53
|
guard enableVideoPlayBackEvent else { return }
|
|
42
54
|
sendEvent(
|
|
@@ -77,36 +89,42 @@ extension FireworkSDKModule: FireworkVideoPlaybackDelegate {
|
|
|
77
89
|
])
|
|
78
90
|
}
|
|
79
91
|
|
|
80
|
-
func
|
|
92
|
+
func fireworkVideoDidStartPlayingAd(_ videoPlayback: VideoPlaybackDetails) {
|
|
81
93
|
guard enableVideoPlayBackEvent else { return }
|
|
82
94
|
sendEvent(
|
|
83
95
|
withName: FWEventName.videoPlayback.rawValue,
|
|
84
96
|
body: [
|
|
85
|
-
"eventName": VideoPlaybackSubEventName.
|
|
97
|
+
"eventName": VideoPlaybackSubEventName.adStart.rawValue,
|
|
86
98
|
"info": videoPlayback.jsObject
|
|
87
99
|
])
|
|
88
100
|
}
|
|
89
101
|
|
|
90
|
-
func
|
|
102
|
+
func fireworkVideoDidFinishPlayingAd(_ videoPlayback: VideoPlaybackDetails) {
|
|
91
103
|
guard enableVideoPlayBackEvent else { return }
|
|
92
104
|
sendEvent(
|
|
93
105
|
withName: FWEventName.videoPlayback.rawValue,
|
|
94
106
|
body: [
|
|
95
|
-
"eventName": VideoPlaybackSubEventName.
|
|
107
|
+
"eventName": VideoPlaybackSubEventName.adEnd.rawValue,
|
|
96
108
|
"info": videoPlayback.jsObject
|
|
97
109
|
])
|
|
98
110
|
}
|
|
99
111
|
|
|
100
|
-
func
|
|
101
|
-
|
|
112
|
+
func fireworkVideoDidTapCTAButton(_ videoPlayback: VideoPlaybackDetails) {
|
|
113
|
+
guard enableVideoPlayBackEvent else { return }
|
|
114
|
+
sendEvent(
|
|
115
|
+
withName: FWEventName.videoPlayback.rawValue,
|
|
116
|
+
body: [
|
|
117
|
+
"eventName": VideoPlaybackSubEventName.clickCTA.rawValue,
|
|
118
|
+
"info": videoPlayback.jsObject
|
|
119
|
+
])
|
|
102
120
|
}
|
|
103
121
|
|
|
104
|
-
func
|
|
122
|
+
func fireworkVideoDidTapShareButton(_ videoPlayback: VideoPlaybackDetails) {
|
|
105
123
|
guard enableVideoPlayBackEvent else { return }
|
|
106
124
|
sendEvent(
|
|
107
125
|
withName: FWEventName.videoPlayback.rawValue,
|
|
108
126
|
body: [
|
|
109
|
-
"eventName": VideoPlaybackSubEventName.
|
|
127
|
+
"eventName": VideoPlaybackSubEventName.clickShare.rawValue,
|
|
110
128
|
"info": videoPlayback.jsObject
|
|
111
129
|
])
|
|
112
130
|
}
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
// The FireworkSDKModule Wrap native FireworkVideoSDK class,then expose to JavaScript in Objective-C
|
|
8
8
|
|
|
9
9
|
import FireworkVideo
|
|
10
|
+
#if canImport(FireworkVideoUI)
|
|
11
|
+
import FireworkVideoUI
|
|
12
|
+
#endif
|
|
10
13
|
|
|
11
14
|
var gShareBaseURL: String?
|
|
12
15
|
var gAdBadgeConfiguration: AdBadgeConfiguration?
|
|
@@ -23,6 +26,14 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
23
26
|
/// Decide whether to send video playback event to RN.
|
|
24
27
|
var enableVideoPlayBackEvent: Bool = false
|
|
25
28
|
|
|
29
|
+
override init() {
|
|
30
|
+
super.init()
|
|
31
|
+
_ = AppLanguageManager.shared
|
|
32
|
+
NotificationCenter.default.addObserver(
|
|
33
|
+
self, selector: #selector(FireworkSDKModule.onAppLanguageChanged),
|
|
34
|
+
name: AppLanguageManager.NotificationName.AppLanguageChanged, object: nil)
|
|
35
|
+
}
|
|
36
|
+
|
|
26
37
|
override func supportedEvents() -> [String]! {
|
|
27
38
|
FWEventName.allCases.map { $0.rawValue }
|
|
28
39
|
}
|
|
@@ -64,14 +75,11 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
64
75
|
#endif
|
|
65
76
|
let sdkInitOptions = RCTConvert.sdkInitOptions(options)
|
|
66
77
|
gVideoLaunchBehavior = sdkInitOptions?.videoLaunchBehavior
|
|
67
|
-
gShareBaseURL = sdkInitOptions?.shareBaseURL
|
|
68
78
|
|
|
69
79
|
FireworkVideoSDK.initializeSDK(delegate: self, userID: sdkInitOptions?.userId)
|
|
70
80
|
FireworkVideoSDK.ctaDelegate = self
|
|
71
81
|
FireworkVideoSDK.eventTracking.videoPlaybackDelegate = self
|
|
72
82
|
FireworkVideoSDK.eventTracking.feedDelegate = self
|
|
73
|
-
|
|
74
|
-
FWAppLanguageManager.shared.initializeManager()
|
|
75
83
|
resolver([:])
|
|
76
84
|
}
|
|
77
85
|
|
|
@@ -96,6 +104,8 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
96
104
|
return
|
|
97
105
|
}
|
|
98
106
|
|
|
107
|
+
_ = AppLanguageManager.shared
|
|
108
|
+
|
|
99
109
|
VideoFeedViewController.openVideoPlayer(with: urlString, feedContentConfig, presentedVC) { _ in
|
|
100
110
|
|
|
101
111
|
}
|
|
@@ -181,10 +191,8 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
181
191
|
sendEvent(withName: FWEventName.logMessage.rawValue, body: ["message": message])
|
|
182
192
|
#endif
|
|
183
193
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
resolver(result)
|
|
187
|
-
}
|
|
194
|
+
let result = AppLanguageManager.shared.changeAppLanguage(language)
|
|
195
|
+
resolver(result)
|
|
188
196
|
}
|
|
189
197
|
|
|
190
198
|
// MARK: - FireworkVideoSDKDelegate
|
|
@@ -228,6 +236,14 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
228
236
|
]
|
|
229
237
|
])
|
|
230
238
|
}
|
|
239
|
+
|
|
240
|
+
@objc func onAppLanguageChanged() {
|
|
241
|
+
sendEvent(
|
|
242
|
+
withName: FWEventName.nativeAppLanguageUpdated.rawValue,
|
|
243
|
+
body: [
|
|
244
|
+
"appLanguage": AppLanguageManager.shared.appLanguage ?? ""
|
|
245
|
+
])
|
|
246
|
+
}
|
|
231
247
|
}
|
|
232
248
|
|
|
233
249
|
extension FireworkSDKModule {
|
|
@@ -27,6 +27,7 @@ class LiveStreamModule: RCTEventEmitter, FireworkLiveStreamEventDelegate {
|
|
|
27
27
|
func initialize() {
|
|
28
28
|
FireworkVideoSDK.eventTracking.liveStreamEventDelegate = self
|
|
29
29
|
}
|
|
30
|
+
|
|
30
31
|
func fireworkLiveStreamUserDidJoin(_ liveStream: LiveStreamEventDetails) {
|
|
31
32
|
sendEvent(
|
|
32
33
|
withName: LiveStreamEventName.livestream.rawValue,
|
|
@@ -8,17 +8,9 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
|
|
10
10
|
struct ProductInfoViewConfiguration: Codable {
|
|
11
|
-
var addToCartButton: AddToCartButtonConfiguration?
|
|
12
11
|
var ctaButton: CTAButtonConfiguration?
|
|
13
12
|
var linkButton: LinkButtonConfiguration?
|
|
14
13
|
|
|
15
|
-
struct AddToCartButtonConfiguration: Codable {
|
|
16
|
-
var backgroundColor: String?
|
|
17
|
-
var textColor: String?
|
|
18
|
-
var fontSize: Double?
|
|
19
|
-
var iOSFontInfo: FontInfo?
|
|
20
|
-
}
|
|
21
|
-
|
|
22
14
|
struct CTAButtonConfiguration: Codable {
|
|
23
15
|
var text: CTAButtonText?
|
|
24
16
|
var backgroundColor: String?
|
|
@@ -335,7 +335,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
extension ShoppingModule {
|
|
338
|
-
// swiftlint:disable:next cyclomatic_complexity
|
|
339
338
|
fileprivate static func hydrateProductViewConfig(
|
|
340
339
|
_ config: ProductInfoViewConfiguration,
|
|
341
340
|
_ productInfoViewConfigurator: ProductInfoViewConfigurable
|
|
@@ -365,23 +364,6 @@ extension ShoppingModule {
|
|
|
365
364
|
let iOSFontInfo = ctaButtonConfiguration.iOSFontInfo ?? FontInfo()
|
|
366
365
|
productDetailsConfiguration.ctaButton.buttonConfiguration.font = iOSFontInfo.getFont(fontSize)
|
|
367
366
|
}
|
|
368
|
-
} else if let addToCartButtonConfiguration = config.addToCartButton {
|
|
369
|
-
productDetailsConfiguration.ctaButton.text = .addToCart
|
|
370
|
-
|
|
371
|
-
if let backgroundColor = addToCartButtonConfiguration.backgroundColor,
|
|
372
|
-
backgroundColor.count > 0 {
|
|
373
|
-
productDetailsConfiguration.ctaButton.buttonConfiguration.backgroundColor = backgroundColor.uicolor()
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
if let textColor = addToCartButtonConfiguration.textColor,
|
|
377
|
-
textColor.count > 0 {
|
|
378
|
-
productDetailsConfiguration.ctaButton.buttonConfiguration.textColor = textColor.uicolor()
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
if let fontSize = addToCartButtonConfiguration.fontSize {
|
|
382
|
-
let iOSFontInfo = addToCartButtonConfiguration.iOSFontInfo ?? FontInfo()
|
|
383
|
-
productDetailsConfiguration.ctaButton.buttonConfiguration.font = iOSFontInfo.getFont(fontSize)
|
|
384
|
-
}
|
|
385
367
|
}
|
|
386
368
|
|
|
387
369
|
if let linkButtonConfiguration = config.linkButton {
|
|
@@ -5,20 +5,18 @@ package = JSON.parse(File.read(packageJsonPath))
|
|
|
5
5
|
|
|
6
6
|
Pod::Spec.new do |s|
|
|
7
7
|
s.name = 'FWMultiHostStreaming'
|
|
8
|
-
s.version =
|
|
8
|
+
s.version = '0.1.0'
|
|
9
9
|
s.summary = 'Firework Multi Host Streaming'
|
|
10
10
|
s.homepage = package['homepage']
|
|
11
11
|
s.license = 'Apache License, Version 2.0'
|
|
12
12
|
s.authors = package['author']
|
|
13
13
|
|
|
14
|
-
s.platforms = { ios: '
|
|
14
|
+
s.platforms = { ios: '12.0' }
|
|
15
15
|
s.source = { git: 'https://github.com/loopsocial/bogano.git', tag: "#{s.version}" }
|
|
16
16
|
|
|
17
17
|
s.swift_version = '5.0'
|
|
18
|
-
s.source_files = '
|
|
18
|
+
s.source_files = 'Sources/*.{h,m,mm,swift}', 'Sources/**/*.{h,m,mm,swift}'
|
|
19
19
|
|
|
20
|
-
s.dependency '
|
|
21
|
-
s.dependency 'SwiftProtobuf', '~> 1.21.0'
|
|
22
|
-
s.dependency 'FireworkVideoAgoraSupport', '~> 0.2.0'
|
|
20
|
+
s.dependency 'FireworkVideoAgoraSupport'
|
|
23
21
|
s.dependency 'FireworkVideo'
|
|
24
22
|
end
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
//
|
|
6
6
|
|
|
7
7
|
import UIKit
|
|
8
|
+
#if canImport(FireworkVideoUI)
|
|
9
|
+
import FireworkVideoUI
|
|
10
|
+
#endif
|
|
8
11
|
|
|
9
12
|
extension UINavigationController {
|
|
10
13
|
static func swizzleMethodsForNavigationController() {
|
|
11
|
-
|
|
14
|
+
Swizzle.swizzleSelector(
|
|
12
15
|
cls: self,
|
|
13
16
|
originalSelector: #selector(UINavigationController.pushViewController(_:animated:)),
|
|
14
17
|
customSelector: #selector(UINavigationController.fw_pushViewController(_:animated:))
|
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
#
|
|
2
|
-
def
|
|
3
|
-
|
|
4
|
-
# puts "multiHostStreamingDir: #{multi_host_streaming_dir}"
|
|
5
|
-
pod 'FWMultiHostStreaming', path: multi_host_streaming_dir, :modular_headers => true
|
|
6
|
-
end
|
|
1
|
+
# set up react native firework sdk
|
|
2
|
+
def set_up_react_native_firework_sdk!(options = {})
|
|
3
|
+
# puts "set_up_react_native_firework_sdk #{options}"
|
|
7
4
|
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# Pod::BuildType.static_library
|
|
13
|
-
# end
|
|
14
|
-
# end
|
|
15
|
-
# end
|
|
5
|
+
# multi_host_streaming_enabled = options[:multi_host_streaming_enabled] ||= false
|
|
6
|
+
# puts "multi_host_streaming_enabled #{multi_host_streaming_enabled}"
|
|
7
|
+
|
|
8
|
+
enable_app_level_language_setting!
|
|
16
9
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def pod.build_type
|
|
21
|
-
Pod::BuildType.dynamic_framework
|
|
22
|
-
end
|
|
23
|
-
end
|
|
10
|
+
# if multi_host_streaming_enabled
|
|
11
|
+
# enable_multi_host_streaming!
|
|
12
|
+
# end
|
|
24
13
|
end
|
|
25
14
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
# enable multi host streaming
|
|
16
|
+
# def enable_multi_host_streaming!
|
|
17
|
+
# multi_host_streaming_dir = File.expand_path("#{__dir__}/../Support/MultiHostStreaming")
|
|
18
|
+
# # puts "multiHostStreamingDir: #{multi_host_streaming_dir}"
|
|
19
|
+
# pod 'FWMultiHostStreaming', path: multi_host_streaming_dir, :modular_headers => true
|
|
20
|
+
# end
|
|
21
|
+
|
|
22
|
+
# enable multi host streaming
|
|
23
|
+
def enable_app_level_language_setting!
|
|
24
|
+
firework_video_ui_dir = File.expand_path("#{__dir__}/../Support/FireworkVideoUI")
|
|
25
|
+
# puts "firework_video_ui_dir: #{firework_video_ui_dir}"
|
|
26
|
+
pod 'FireworkVideoUI', path: firework_video_ui_dir
|
|
31
27
|
end
|