react-native-firework-sdk 2.2.4 → 2.3.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/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -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 +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -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 +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +9 -9
- package/android/build.gradle +9 -39
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradle.properties +7 -5
- package/android/proguard-rules.pro +5 -26
- package/android/src/main/AndroidManifest.xml +0 -3
- package/android/src/main/java/com/fireworksdk/bridge/FireworkSDKPackage.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/base/FWBaseFragment.kt +10 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +157 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFrameLayout.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +15 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +6 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +5 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelSerializer.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelDeserializer.kt +35 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelSerializer.kt +27 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +5 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +2 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationSerializer.kt +42 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt +20 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +3 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +2 -13
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +8 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +17 -6
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelSerializer.kt +59 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +14 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +14 -4
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelSerializer.kt +56 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +11 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +11 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +11 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +63 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProduct.kt +4 -11
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductSerializer.kt +82 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWBadgeTextType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaButtonTextValue.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaDelayType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/{FWEventName.kt → enums/FWEventName.kt} +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWGradientDrawableOrientation.kt +24 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerLaunchBehavior.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerStyle.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWShoppingCtaResultRes.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWSystemTypeface.kt +21 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoCompleteAction.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedMode.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedSource.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedTitlePosition.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoPlayerCTAWidth.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWReactNativeSDK.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +61 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +3 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +0 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +0 -6
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +25 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +24 -47
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +17 -44
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWBundleUtils.kt +46 -21
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +165 -86
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWFragmentUtil.kt +51 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +77 -80
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLiveStreamUtil.kt +17 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWSingletonHolder.kt +25 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWStatusBarUtil.kt +28 -0
- package/android/src/main/res/layout/fw_bridge_story_block.xml +5 -12
- package/ios/Components/VideoFeed.swift +39 -19
- package/ios/Components/VideoFeedConfiguration.swift +4 -5
- package/ios/Components/VideoFeedManager.swift +1 -1
- package/ios/Components/VideoPlayerConfiguration.swift +17 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +197 -205
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +23 -8
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +1 -18
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +4 -1
- package/ios/Models/NativeToRN/FireworkEventName.swift +0 -1
- package/ios/Models/NativeToRN/FireworkSDK+Json.swift +1 -1
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +6 -157
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -21
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +1 -12
- package/ios/Modules/LiveStream/LiveStreamModule.m +1 -1
- package/ios/Modules/LiveStream/LiveStreamModule.swift +4 -2
- package/ios/Modules/Shopping/FWCartViewController.swift +0 -75
- package/ios/Modules/Shopping/ShoppingModule.m +1 -3
- package/ios/Modules/Shopping/ShoppingModule.swift +12 -47
- package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +1 -1
- package/lib/commonjs/FireworkSDK.js +31 -15
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +43 -30
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +124 -82
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +112 -24
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/GradientDrawable.js +2 -0
- package/lib/commonjs/models/GradientDrawable.js.map +1 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js +6 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js +6 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerStyle.js +2 -0
- package/lib/commonjs/models/VideoPlayerStyle.js.map +1 -0
- package/lib/commonjs/modules/LiveStreamModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/commonjs/utils/FWGlobalState.js +47 -0
- package/lib/commonjs/utils/FWGlobalState.js.map +1 -0
- package/lib/module/FireworkSDK.js +30 -14
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js.map +1 -1
- package/lib/module/VideoShopping.js +43 -29
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +113 -73
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +113 -24
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/GradientDrawable.js +2 -0
- package/lib/module/models/GradientDrawable.js.map +1 -0
- package/lib/module/models/StoryBlockConfiguration.js +2 -0
- package/lib/module/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/module/models/VideoPlayerCTADelay.js +2 -0
- package/lib/module/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAStyle.js +2 -0
- package/lib/module/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/module/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/module/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/module/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/module/models/VideoPlayerStyle.js +2 -0
- package/lib/module/models/VideoPlayerStyle.js.map +1 -0
- package/lib/module/modules/LiveStreamModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/module/utils/FWGlobalState.js +39 -0
- package/lib/module/utils/FWGlobalState.js.map +1 -0
- package/lib/typescript/FireworkSDK.d.ts +7 -7
- package/lib/typescript/LiveStream.d.ts +2 -2
- package/lib/typescript/VideoShopping.d.ts +17 -18
- package/lib/typescript/components/StoryBlock.d.ts +2 -0
- package/lib/typescript/components/VideoFeed.d.ts +7 -3
- package/lib/typescript/index.d.ts +10 -3
- package/lib/typescript/models/AdBadgeConfiguration.d.ts +9 -2
- package/lib/typescript/models/FWEvents.d.ts +9 -9
- package/lib/typescript/models/GradientDrawable.d.ts +5 -0
- package/lib/typescript/models/IOSFontInfo.d.ts +2 -0
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +1 -1
- package/lib/typescript/models/StoryBlockConfiguration.d.ts +37 -0
- package/lib/typescript/models/VideoFeedConfiguration.d.ts +25 -4
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCTADelay.d.ts +11 -0
- package/lib/typescript/models/VideoPlayerCTAStyle.d.ts +21 -0
- package/lib/typescript/models/VideoPlayerCTAWidth.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCompleteAction.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +9 -34
- package/lib/typescript/models/VideoPlayerStyle.d.ts +1 -0
- package/lib/typescript/modules/LiveStreamModule.d.ts +1 -1
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -3
- package/lib/typescript/utils/FWGlobalState.d.ts +10 -0
- package/package.json +5 -3
- package/react-native-firework-sdk.podspec +2 -1
- package/src/FireworkSDK.ts +47 -19
- package/src/LiveStream.ts +4 -2
- package/src/VideoShopping.ts +47 -39
- package/src/components/StoryBlock.tsx +161 -98
- package/src/components/VideoFeed.tsx +147 -23
- package/src/index.ts +14 -6
- package/src/models/AdBadgeConfiguration.ts +10 -2
- package/src/models/FWEvents.ts +11 -11
- package/src/models/GradientDrawable.ts +14 -0
- package/src/models/IOSFontInfo.ts +2 -0
- package/src/models/ProductInfoViewConfiguration.ts +1 -1
- package/src/models/StoryBlockConfiguration.ts +38 -0
- package/src/models/VideoFeedConfiguration.ts +25 -4
- package/src/models/VideoPlaybackDetails.ts +1 -0
- package/src/models/VideoPlayerCTADelay.ts +11 -0
- package/src/models/VideoPlayerCTAStyle.ts +22 -0
- package/src/models/VideoPlayerCTAWidth.ts +1 -0
- package/src/models/VideoPlayerCompleteAction.ts +1 -0
- package/src/models/VideoPlayerConfiguration.ts +9 -36
- package/src/models/VideoPlayerStyle.ts +1 -0
- package/src/modules/LiveStreamModule.ts +1 -1
- package/src/modules/ShoppingModule.ts +2 -3
- package/src/utils/FWGlobalState.ts +31 -0
- package/android/publish.gradle +0 -66
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +0 -129
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +0 -90
- package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +0 -39
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +0 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +0 -10
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedTitlePosition.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +0 -53
- package/android/src/main/res/layout/fw_bridge_fragment_container.xml +0 -8
- package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +0 -33
- package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +0 -18
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models.enums
|
|
2
|
+
|
|
3
|
+
enum class FWVideoFeedTitlePosition(val rawValue: String) {
|
|
4
|
+
Nested("nested"),
|
|
5
|
+
Stacked("stacked");
|
|
6
|
+
|
|
7
|
+
companion object {
|
|
8
|
+
fun deserialize(rawValue: String?): FWVideoFeedTitlePosition? {
|
|
9
|
+
rawValue ?: return null
|
|
10
|
+
return FWVideoFeedTitlePosition.values().first { it.rawValue == rawValue }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
fun serialize(model: FWVideoFeedTitlePosition?): String? {
|
|
14
|
+
model ?: return null
|
|
15
|
+
return model.rawValue
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models.enums
|
|
2
|
+
|
|
3
|
+
enum class FWVideoPlayerCTAWidth(val rawValue: String) {
|
|
4
|
+
FullWidth("fullWidth"),
|
|
5
|
+
Compact("compact"),
|
|
6
|
+
SizeToFit("sizeToFit");
|
|
7
|
+
|
|
8
|
+
companion object {
|
|
9
|
+
fun deserialize(rawValue: String?): FWVideoPlayerCTAWidth? {
|
|
10
|
+
rawValue ?: return null
|
|
11
|
+
return FWVideoPlayerCTAWidth.values().first { it.rawValue == rawValue }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
fun serialize(model: FWVideoPlayerCTAWidth?): String? {
|
|
15
|
+
model ?: return null
|
|
16
|
+
return model.rawValue
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.reactnative
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import com.firework.livestream.LivestreamPlayerInitializer
|
|
6
|
+
import com.fireworksdk.bridge.utils.FWLanguageUtil
|
|
7
|
+
import com.fireworksdk.bridge.utils.FWLiveStreamUtil
|
|
8
|
+
|
|
9
|
+
object FWReactNativeSDK {
|
|
10
|
+
|
|
11
|
+
fun addLivestreamPlayerInitializer(initializer: LivestreamPlayerInitializer?) {
|
|
12
|
+
FWLiveStreamUtil.addLivestreamPlayerInitializer(initializer)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
fun updateBaseContextLocale(context: Context): Context {
|
|
16
|
+
return FWLanguageUtil.getInstance(context).updateBaseContextLocale(context)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
fun changeLanguage(localeString: String, activity: Activity) {
|
|
20
|
+
FWLanguageUtil.getInstance(activity).changeLanguage(localeString, activity)
|
|
21
|
+
}
|
|
22
|
+
}
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt
CHANGED
|
@@ -3,8 +3,7 @@ package com.fireworksdk.bridge.reactnative.manager
|
|
|
3
3
|
import android.view.Choreographer
|
|
4
4
|
import android.view.View
|
|
5
5
|
import android.view.ViewGroup
|
|
6
|
-
import androidx.
|
|
7
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import androidx.fragment.app.FragmentActivity
|
|
8
7
|
import com.facebook.react.bridge.ReadableArray
|
|
9
8
|
import com.facebook.react.bridge.ReadableMap
|
|
10
9
|
import com.facebook.react.common.MapBuilder
|
|
@@ -12,24 +11,28 @@ import com.facebook.react.uimanager.ThemedReactContext
|
|
|
12
11
|
import com.facebook.react.uimanager.ViewGroupManager
|
|
13
12
|
import com.facebook.react.uimanager.annotations.ReactProp
|
|
14
13
|
import com.firework.storyblock.FeedLoadState
|
|
15
|
-
import com.fireworksdk.bridge.components.
|
|
16
|
-
import com.fireworksdk.bridge.components.
|
|
14
|
+
import com.fireworksdk.bridge.components.storyblock.StoryBlockFragment
|
|
15
|
+
import com.fireworksdk.bridge.components.storyblock.StoryBlockFrameLayout
|
|
17
16
|
import com.fireworksdk.bridge.models.*
|
|
17
|
+
import com.fireworksdk.bridge.models.enums.FWStoryBlockEventName
|
|
18
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedSource
|
|
18
19
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
20
|
+
import com.fireworksdk.bridge.utils.FWFragmentUtil
|
|
19
21
|
import com.fireworksdk.bridge.utils.FWGlobalDataUtil
|
|
20
22
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
21
23
|
import org.json.JSONObject
|
|
22
24
|
|
|
23
25
|
|
|
24
|
-
class FWStoryBlockManager(
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
class FWStoryBlockManager : ViewGroupManager<StoryBlockFrameLayout>() {
|
|
27
|
+
|
|
28
|
+
private lateinit var reactContext: ThemedReactContext
|
|
27
29
|
|
|
28
30
|
override fun getName(): String {
|
|
29
31
|
return REACT_CLASS
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
override fun createViewInstance(reactContext: ThemedReactContext): StoryBlockFrameLayout {
|
|
35
|
+
this.reactContext = reactContext
|
|
33
36
|
return StoryBlockFrameLayout(reactContext)
|
|
34
37
|
}
|
|
35
38
|
|
|
@@ -44,7 +47,7 @@ class FWStoryBlockManager(
|
|
|
44
47
|
map["create"] = COMMAND_CREATE
|
|
45
48
|
map["play"] = COMMAND_PLAY
|
|
46
49
|
map["pause"] = COMMAND_PAUSE
|
|
47
|
-
map["
|
|
50
|
+
map["toggleFullScreen"] = COMMAND_TOGGLE_FULL_SCREEN
|
|
48
51
|
return map
|
|
49
52
|
}
|
|
50
53
|
|
|
@@ -60,42 +63,55 @@ class FWStoryBlockManager(
|
|
|
60
63
|
val reactNativeViewId = requireNotNull(args).getInt(0)
|
|
61
64
|
createFragment(root, reactNativeViewId)
|
|
62
65
|
}
|
|
63
|
-
COMMAND_PLAY -> root.play()
|
|
64
|
-
COMMAND_PAUSE -> root.pause()
|
|
65
|
-
COMMAND_TOGGLE_FULL_SCREEN -> root.toggleFullScreen()
|
|
66
|
+
COMMAND_PLAY -> root.storyBlockFragment?.play()
|
|
67
|
+
COMMAND_PAUSE -> root.storyBlockFragment?.pause()
|
|
68
|
+
COMMAND_TOGGLE_FULL_SCREEN -> root.storyBlockFragment?.toggleFullScreen()
|
|
66
69
|
else -> {}
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
@ReactProp(name = "source")
|
|
71
74
|
fun setSource(view: StoryBlockFrameLayout, source: String?) {
|
|
72
|
-
view.
|
|
75
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
76
|
+
source = FWVideoFeedSource.deserialize(source)
|
|
77
|
+
)
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
@ReactProp(name = "channel")
|
|
76
81
|
fun setChannel(view: StoryBlockFrameLayout, channel: String?) {
|
|
77
|
-
view.
|
|
82
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
83
|
+
channel = channel
|
|
84
|
+
)
|
|
78
85
|
}
|
|
79
86
|
|
|
80
87
|
@ReactProp(name = "playlist")
|
|
81
88
|
fun setPlaylist(view: StoryBlockFrameLayout, playlist: String?) {
|
|
82
|
-
view.
|
|
89
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
90
|
+
playlist = playlist
|
|
91
|
+
)
|
|
83
92
|
}
|
|
84
93
|
|
|
85
94
|
@ReactProp(name = "hashtagFilterExpression")
|
|
86
95
|
fun setHashtagFilterExpression(view: StoryBlockFrameLayout, hashtagFilterExpression: String?) {
|
|
87
|
-
view.
|
|
96
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
97
|
+
hashtagFilterExpression = hashtagFilterExpression
|
|
98
|
+
)
|
|
88
99
|
}
|
|
89
100
|
|
|
101
|
+
@Suppress("UNCHECKED_CAST")
|
|
90
102
|
@ReactProp(name = "dynamicContentParameters")
|
|
91
103
|
fun setDynamicContentParameters(view: StoryBlockFrameLayout, parameters: ReadableMap?) {
|
|
92
104
|
val parametersMap = parameters?.toHashMap() as? HashMap<String, List<String>>
|
|
93
|
-
view.
|
|
105
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
106
|
+
dynamicContentParameters = parametersMap
|
|
107
|
+
)
|
|
94
108
|
}
|
|
95
109
|
|
|
96
110
|
@ReactProp(name = "enablePictureInPicture")
|
|
97
111
|
fun setEnablePictureInPicture(view: StoryBlockFrameLayout, enablePictureInPicture: Boolean?) {
|
|
98
|
-
view.
|
|
112
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
113
|
+
enablePictureInPicture = enablePictureInPicture
|
|
114
|
+
)
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
@ReactProp(name = "videoFeedConfiguration")
|
|
@@ -103,7 +119,9 @@ class FWStoryBlockManager(
|
|
|
103
119
|
val configMap = config?.toHashMap() ?: hashMapOf()
|
|
104
120
|
val jsonObject = JSONObject(configMap)
|
|
105
121
|
val videoFeedConfigModel = FWVideoFeedConfigModelDeserializer.deserialize(jsonObject)
|
|
106
|
-
view.
|
|
122
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
123
|
+
videoFeedConfiguration = videoFeedConfigModel
|
|
124
|
+
)
|
|
107
125
|
}
|
|
108
126
|
|
|
109
127
|
@ReactProp(name = "videoPlayerConfiguration")
|
|
@@ -111,7 +129,19 @@ class FWStoryBlockManager(
|
|
|
111
129
|
val configMap = config?.toHashMap() ?: hashMapOf()
|
|
112
130
|
val jsonObject = JSONObject(configMap)
|
|
113
131
|
val videoPlayerConfigModel = FWVideoPlayerConfigModelDeserializer.deserialize(jsonObject)
|
|
114
|
-
view.
|
|
132
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
133
|
+
videoPlayerConfiguration = videoPlayerConfigModel
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@ReactProp(name = "storyBlockConfiguration")
|
|
138
|
+
fun setStoryBlockConfig(view: StoryBlockFrameLayout, config: ReadableMap?) {
|
|
139
|
+
val configMap = config?.toHashMap() ?: hashMapOf()
|
|
140
|
+
val jsonObject = JSONObject(configMap)
|
|
141
|
+
val videoPlayerConfigModel = FWVideoPlayerConfigModelDeserializer.deserialize(jsonObject)
|
|
142
|
+
view.videoFeedPropsModel = view.videoFeedPropsModel.copy(
|
|
143
|
+
videoPlayerConfiguration = videoPlayerConfigModel
|
|
144
|
+
)
|
|
115
145
|
}
|
|
116
146
|
|
|
117
147
|
private fun setupLayout(view: View) {
|
|
@@ -168,14 +198,15 @@ class FWStoryBlockManager(
|
|
|
168
198
|
private fun createFragment(root: StoryBlockFrameLayout, reactNativeViewId: Int?) {
|
|
169
199
|
FWLogUtils.d { "FWStoryBlockManager createFragment, reactNativeViewId = $reactNativeViewId" }
|
|
170
200
|
reactNativeViewId ?: return
|
|
171
|
-
val activity =
|
|
201
|
+
val activity = reactContext.currentActivity as FragmentActivity?
|
|
202
|
+
activity ?: return
|
|
172
203
|
|
|
173
204
|
val parentView = root.findViewById(reactNativeViewId) as ViewGroup
|
|
174
205
|
// parentView.setBackgroundColor(Color.YELLOW)
|
|
175
206
|
setupLayout(parentView)
|
|
176
207
|
|
|
177
|
-
val fragment = StoryBlockFragment()
|
|
178
|
-
root.
|
|
208
|
+
val fragment = StoryBlockFragment.newInstance(root.videoFeedPropsModel)
|
|
209
|
+
root.storyBlockFragment = fragment
|
|
179
210
|
addStoryBlockListener(fragment, reactNativeViewId)
|
|
180
211
|
|
|
181
212
|
if (parentView.isAttachedToWindow) {
|
|
@@ -187,7 +218,7 @@ class FWStoryBlockManager(
|
|
|
187
218
|
}
|
|
188
219
|
} else {
|
|
189
220
|
parentView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
|
|
190
|
-
override fun onViewAttachedToWindow(v: View
|
|
221
|
+
override fun onViewAttachedToWindow(v: View) {
|
|
191
222
|
FWLogUtils.d { "FWStoryBlockManager createFragment doOnAttach" }
|
|
192
223
|
if (!fragment.isAdded) {
|
|
193
224
|
activity.supportFragmentManager
|
|
@@ -197,20 +228,18 @@ class FWStoryBlockManager(
|
|
|
197
228
|
}
|
|
198
229
|
}
|
|
199
230
|
|
|
200
|
-
override fun onViewDetachedFromWindow(v: View
|
|
231
|
+
override fun onViewDetachedFromWindow(v: View) {
|
|
201
232
|
}
|
|
202
233
|
})
|
|
203
234
|
}
|
|
204
235
|
}
|
|
205
236
|
|
|
206
|
-
override fun onDropViewInstance(
|
|
207
|
-
val activity = reactContext.currentActivity as
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
view.destroy()
|
|
213
|
-
super.onDropViewInstance(view)
|
|
237
|
+
override fun onDropViewInstance(storyBlockFrameLayout: StoryBlockFrameLayout) {
|
|
238
|
+
val activity = reactContext.currentActivity as FragmentActivity?
|
|
239
|
+
FWFragmentUtil.removeFragment(activity, storyBlockFrameLayout.storyBlockFragment)
|
|
240
|
+
storyBlockFrameLayout.destroy()
|
|
241
|
+
|
|
242
|
+
super.onDropViewInstance(storyBlockFrameLayout)
|
|
214
243
|
}
|
|
215
244
|
|
|
216
245
|
override fun getExportedCustomBubblingEventTypeConstants(): MutableMap<String, Any>? {
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt
CHANGED
|
@@ -11,10 +11,10 @@ import com.facebook.react.common.MapBuilder
|
|
|
11
11
|
import com.firework.videofeed.FeedItemClickListener
|
|
12
12
|
import com.firework.videofeed.FeedViewState
|
|
13
13
|
import com.fireworksdk.bridge.components.videofeed.FWVideoFeed
|
|
14
|
-
import com.fireworksdk.bridge.models.FWFeedViewEventName
|
|
15
14
|
import com.fireworksdk.bridge.models.FWVideoFeedConfigModelDeserializer
|
|
16
15
|
import com.fireworksdk.bridge.models.FWVideoFeedItemDetailsModel
|
|
17
16
|
import com.fireworksdk.bridge.models.FWVideoPlayerConfigModelDeserializer
|
|
17
|
+
import com.fireworksdk.bridge.models.enums.FWFeedViewEventName
|
|
18
18
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
19
19
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
20
20
|
import org.json.JSONObject
|
|
@@ -81,6 +81,7 @@ class FWVideoFeedManager : SimpleViewManager<FWVideoFeed>() {
|
|
|
81
81
|
view.setEnablePictureInPicture(enablePictureInPicture)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
@Suppress("UNCHECKED_CAST")
|
|
84
85
|
@ReactProp(name = "dynamicContentParameters")
|
|
85
86
|
fun setDynamicContentParameters(view: FWVideoFeed, parameters: ReadableMap?) {
|
|
86
87
|
val parametersMap = parameters?.toHashMap() as? HashMap<String, List<String>>
|
|
@@ -116,7 +117,7 @@ class FWVideoFeedManager : SimpleViewManager<FWVideoFeed>() {
|
|
|
116
117
|
index,
|
|
117
118
|
id,
|
|
118
119
|
duration.toInt(),
|
|
119
|
-
videoFeed.videoFeedPropsModel.source,
|
|
120
|
+
videoFeed.videoFeedPropsModel.source?.rawValue,
|
|
120
121
|
title,
|
|
121
122
|
videoFeed.videoFeedPropsModel.playlistGroup,
|
|
122
123
|
videoFeed.videoFeedPropsModel.playlist,
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt
CHANGED
|
@@ -5,7 +5,6 @@ import com.facebook.react.bridge.ReadableMap
|
|
|
5
5
|
|
|
6
6
|
interface FWNavigatorInterface {
|
|
7
7
|
|
|
8
|
-
fun pushNativeContainer(props: ReadableMap?, promise: Promise)
|
|
9
8
|
fun popNativeContainer(promise: Promise)
|
|
10
9
|
fun canPopNativeContainer(promise: Promise)
|
|
11
10
|
fun startFloatingPlayer(promise: Promise)
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt
CHANGED
|
@@ -10,7 +10,6 @@ interface FWVideoShoppingInterface {
|
|
|
10
10
|
fun updateVideoProducts(productArray: ReadableArray?, callbackId: String?)
|
|
11
11
|
fun setProductInfoViewConfiguration(config: ReadableMap?)
|
|
12
12
|
fun updateShoppingCTAResult(result: ReadableMap?, callbackId: Int?)
|
|
13
|
-
fun jumpToCartPage(callbackId: Int?, props: ReadableMap?)
|
|
14
13
|
fun setCartIconVisible(visible: Boolean?)
|
|
15
14
|
fun setCartItemCount(count: Int?)
|
|
16
15
|
fun setCustomClickLinkButtonEnabled(value: Boolean?, promise: Promise)
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt
CHANGED
|
@@ -10,8 +10,6 @@ interface FireworkSDKInterface {
|
|
|
10
10
|
fun setShareBaseURL(url: String?, promise: Promise)
|
|
11
11
|
fun setAdBadgeConfiguration(config: ReadableMap?, promise: Promise)
|
|
12
12
|
fun setCustomCTAClickEnabled(value: Boolean?)
|
|
13
|
-
fun setCustomCTALinkContentPageRouteName(name: String?, promise: Promise)
|
|
14
|
-
fun setAppComponentName(name: String?, promise: Promise)
|
|
15
13
|
fun setVideoPlaybackEventEnabled(value: Boolean?)
|
|
16
14
|
fun changeAppLanguage(language: String?, promise: Promise)
|
|
17
15
|
fun restart(promise: Promise)
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt
CHANGED
|
@@ -7,8 +7,8 @@ import com.firework.analyticsevents.livestream.LivestreamAnalyticEvent
|
|
|
7
7
|
import com.firework.bus.FwAnalyticCallable
|
|
8
8
|
import com.firework.sdk.FireworkSdk
|
|
9
9
|
import com.fireworksdk.bridge.models.FWLiveStreamEventDetailsModel
|
|
10
|
-
import com.fireworksdk.bridge.models.FWLiveStreamEventName
|
|
11
10
|
import com.fireworksdk.bridge.models.FWLiveStreamMessageDetailsModel
|
|
11
|
+
import com.fireworksdk.bridge.models.enums.FWLiveStreamEventName
|
|
12
12
|
import com.fireworksdk.bridge.reactnative.models.FWLiveStreamInterface
|
|
13
13
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
14
14
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
@@ -62,7 +62,7 @@ class FWLiveStreamModule(
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
@ReactMethod
|
|
66
66
|
fun addListener(eventName: String?) {
|
|
67
67
|
// Set up any upstream listeners or background tasks as necessary
|
|
68
68
|
FWLogUtils.d { "addListener: $eventName" }
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt
CHANGED
|
@@ -5,7 +5,6 @@ import com.facebook.react.bridge.*
|
|
|
5
5
|
import com.firework.sdk.FireworkSdk
|
|
6
6
|
import com.fireworksdk.bridge.FWInitializationProvider
|
|
7
7
|
import com.fireworksdk.bridge.reactnative.models.FWNavigatorInterface
|
|
8
|
-
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
9
8
|
import com.fireworksdk.bridge.utils.FWGlobalDataUtil
|
|
10
9
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
11
10
|
|
|
@@ -14,11 +13,6 @@ class FWNavigatorModule(
|
|
|
14
13
|
reactContext: ReactApplicationContext
|
|
15
14
|
) : ReactContextBaseJavaModule(reactContext), FWNavigatorInterface {
|
|
16
15
|
|
|
17
|
-
@ReactMethod
|
|
18
|
-
override fun pushNativeContainer(props: ReadableMap?, promise: Promise) {
|
|
19
|
-
FWEventUtils.pushNativeContainer(reactApplicationContext, props, promise)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
16
|
@ReactMethod
|
|
23
17
|
override fun popNativeContainer(promise: Promise) {
|
|
24
18
|
FWLogUtils.d { "FWNavigatorModule popNativeContainer" }
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.reactnative.module
|
|
2
2
|
|
|
3
|
-
import android.app.Activity
|
|
4
3
|
import android.widget.Toast
|
|
5
4
|
import com.facebook.react.bridge.*
|
|
6
5
|
import com.firework.common.product.CurrencyCode
|
|
@@ -10,6 +9,8 @@ import com.firework.sdk.FireworkSdk
|
|
|
10
9
|
import com.firework.shopping.*
|
|
11
10
|
import com.fireworksdk.bridge.FWInitializationProvider
|
|
12
11
|
import com.fireworksdk.bridge.models.*
|
|
12
|
+
import com.fireworksdk.bridge.models.enums.FWCtaButtonTextValue
|
|
13
|
+
import com.fireworksdk.bridge.models.enums.FWShoppingCtaResultRes
|
|
13
14
|
import com.fireworksdk.bridge.reactnative.models.FWVideoShoppingInterface
|
|
14
15
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
15
16
|
import com.fireworksdk.bridge.utils.FWDateUtils
|
|
@@ -26,7 +27,6 @@ class FWVideoShoppingModule(
|
|
|
26
27
|
) : ReactContextBaseJavaModule(reactContext), FWVideoShoppingInterface {
|
|
27
28
|
|
|
28
29
|
private var ctaHandler: Triple<Int, String, String>? = null
|
|
29
|
-
private var cartClickHandler: Pair<Int, Activity>? = null
|
|
30
30
|
private val updateProductHandler: HashMap<String, List<Product>> = HashMap()
|
|
31
31
|
private val updateProductHydratorHandler: HashMap<String, ProductHydrator> = HashMap()
|
|
32
32
|
|
|
@@ -94,6 +94,7 @@ class FWVideoShoppingModule(
|
|
|
94
94
|
hydrator: ProductHydrator,
|
|
95
95
|
position: Int
|
|
96
96
|
) {
|
|
97
|
+
FWLogUtils.d { "FWVideoShoppingModule hydrateProduct: $position" }
|
|
97
98
|
product.id?.let { id ->
|
|
98
99
|
val name = videoProduct.name ?: product.name
|
|
99
100
|
val description = (videoProduct.description ?: product.description) ?: ""
|
|
@@ -101,7 +102,7 @@ class FWVideoShoppingModule(
|
|
|
101
102
|
hydrator.hydrate(id) {
|
|
102
103
|
name(name)
|
|
103
104
|
description(description)
|
|
104
|
-
product.units.forEachIndexed {
|
|
105
|
+
product.units.forEachIndexed { _, unit ->
|
|
105
106
|
unit.id?.let { variantId ->
|
|
106
107
|
val vpUnit = videoProduct.units?.find { vpu ->
|
|
107
108
|
vpu.unitId == variantId
|
|
@@ -142,7 +143,7 @@ class FWVideoShoppingModule(
|
|
|
142
143
|
val isLinkButtonHidden = configModel.linkButton?.isHidden == true
|
|
143
144
|
var text = ShoppingCtaButtonOptions.Text.ADD_TO_CART
|
|
144
145
|
when (configModel.ctaButton?.text) {
|
|
145
|
-
|
|
146
|
+
FWCtaButtonTextValue.ShopNow -> {
|
|
146
147
|
text = ShoppingCtaButtonOptions.Text.SHOP_NOW
|
|
147
148
|
}
|
|
148
149
|
else -> {}
|
|
@@ -183,15 +184,15 @@ class FWVideoShoppingModule(
|
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
when (resultModel.res) {
|
|
186
|
-
|
|
187
|
+
FWShoppingCtaResultRes.Success -> {
|
|
187
188
|
val numberOfItemsInCart = FireworkSdk.shopping.numberOfItemsInCart
|
|
188
189
|
FireworkSdk.shopping.setCtaButtonStatus(Shopping.CtaButtonStatus.Success)
|
|
189
190
|
FireworkSdk.shopping.numberOfItemsInCart = numberOfItemsInCart
|
|
190
191
|
}
|
|
191
|
-
|
|
192
|
+
FWShoppingCtaResultRes.Fail -> {
|
|
192
193
|
FireworkSdk.shopping.setCtaButtonStatus(Shopping.CtaButtonStatus.Error)
|
|
193
194
|
}
|
|
194
|
-
|
|
195
|
+
FWShoppingCtaResultRes.Loading -> {
|
|
195
196
|
FireworkSdk.shopping.setCtaButtonStatus(Shopping.CtaButtonStatus.Loading)
|
|
196
197
|
}
|
|
197
198
|
else -> {
|
|
@@ -204,21 +205,14 @@ class FWVideoShoppingModule(
|
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
|
|
207
|
-
@ReactMethod
|
|
208
|
-
override fun jumpToCartPage(callbackId: Int?, props: ReadableMap?) {
|
|
209
|
-
FWLogUtils.d { "FWVideoShoppingModule jumpToCartPage: $callbackId props: $props" }
|
|
210
|
-
if (callbackId == null || cartClickHandler?.first != callbackId) {
|
|
211
|
-
return
|
|
212
|
-
}
|
|
213
|
-
FWEventUtils.pushNativeContainer(reactApplicationContext, props, null)
|
|
214
|
-
}
|
|
215
|
-
|
|
216
208
|
@ReactMethod
|
|
217
209
|
override fun setCartIconVisible(visible: Boolean?) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
210
|
+
UiThreadUtil.runOnUiThread {
|
|
211
|
+
if (visible == true) {
|
|
212
|
+
FireworkSdk.shopping.setShoppingCartBehaviour(Shopping.CartBehaviour.Callback)
|
|
213
|
+
} else {
|
|
214
|
+
FireworkSdk.shopping.setShoppingCartBehaviour(Shopping.CartBehaviour.NoCart)
|
|
215
|
+
}
|
|
222
216
|
}
|
|
223
217
|
}
|
|
224
218
|
|
|
@@ -234,7 +228,6 @@ class FWVideoShoppingModule(
|
|
|
234
228
|
val activity = FWInitializationProvider.INSTANCE.resumedActivity
|
|
235
229
|
activity ?: return
|
|
236
230
|
val callbackId = generateCallbackId()
|
|
237
|
-
cartClickHandler = Pair(callbackId, activity)
|
|
238
231
|
FWEventUtils.sendCartIconClickEvent(reactApplicationContext, callbackId)
|
|
239
232
|
}
|
|
240
233
|
})
|
|
@@ -276,18 +269,18 @@ class FWVideoShoppingModule(
|
|
|
276
269
|
}
|
|
277
270
|
})
|
|
278
271
|
|
|
279
|
-
FireworkSdk.shopping.setOnProductLinkClickListener
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return FWGlobalDataUtil.customClickLinkButtonEnabled
|
|
272
|
+
FireworkSdk.shopping.setOnProductLinkClickListener { productId, unitId, productWebUrl ->
|
|
273
|
+
if (FWGlobalDataUtil.customClickLinkButtonEnabled) {
|
|
274
|
+
FWEventUtils.sendCustomLinkButtonClickEvent(
|
|
275
|
+
reactApplicationContext,
|
|
276
|
+
productWebUrl,
|
|
277
|
+
productId,
|
|
278
|
+
unitId,
|
|
279
|
+
callbackId
|
|
280
|
+
)
|
|
289
281
|
}
|
|
290
|
-
|
|
282
|
+
FWGlobalDataUtil.customClickLinkButtonEnabled
|
|
283
|
+
}
|
|
291
284
|
}
|
|
292
285
|
|
|
293
286
|
@ReactMethod
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt
CHANGED
|
@@ -15,16 +15,13 @@ import com.firework.analyticsevents.cta.CtaButtonClickAnalyticsEvent
|
|
|
15
15
|
import com.firework.analyticsevents.player.PlayerLifecycleAnalyticsEvent
|
|
16
16
|
import com.firework.analyticsevents.share.ShareButtonAnalyticsEvent
|
|
17
17
|
import com.firework.bus.FwAnalyticCallable
|
|
18
|
-
import com.firework.imageloading.glide.GlideImageLoaderFactory
|
|
19
|
-
import com.firework.livestream.multihost.MultihostLivestreamPlayerInitializer
|
|
20
|
-
import com.firework.livestream.singlehost.LivestreamPlayerInitializer
|
|
21
18
|
import com.firework.sdk.FireworkSdk
|
|
22
19
|
import com.firework.sdk.FireworkSdkConfig
|
|
23
20
|
import com.fireworksdk.bridge.FWInitializationProvider
|
|
24
|
-
import com.fireworksdk.bridge.constants.FWVideoPlayerConstant
|
|
25
21
|
import com.fireworksdk.bridge.models.*
|
|
22
|
+
import com.fireworksdk.bridge.models.enums.FWPlayerLaunchBehavior
|
|
23
|
+
import com.fireworksdk.bridge.models.enums.FWVideoPlaybackSubEventName
|
|
26
24
|
import com.fireworksdk.bridge.reactnative.models.FireworkSDKInterface
|
|
27
|
-
import com.fireworksdk.bridge.reactnative.pages.FWContainerActivity
|
|
28
25
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
29
26
|
import com.fireworksdk.bridge.utils.*
|
|
30
27
|
import org.json.JSONObject
|
|
@@ -77,6 +74,9 @@ class FireworkSDKModule(
|
|
|
77
74
|
*/
|
|
78
75
|
@ReactMethod
|
|
79
76
|
override fun openVideoPlayer(url: String, config: ReadableMap?) {
|
|
77
|
+
val activity = FWInitializationProvider.INSTANCE.resumedActivity
|
|
78
|
+
activity ?: return
|
|
79
|
+
|
|
80
80
|
val configMap = config?.toHashMap() ?: hashMapOf()
|
|
81
81
|
val jsonObject = JSONObject(configMap)
|
|
82
82
|
val videoPlayerConfigModel = FWVideoPlayerConfigModelDeserializer.deserialize(jsonObject)
|
|
@@ -85,7 +85,7 @@ class FireworkSDKModule(
|
|
|
85
85
|
videoPlayerConfiguration = videoPlayerConfigModel
|
|
86
86
|
)
|
|
87
87
|
|
|
88
|
-
val viewOptionsBuilder = FWConfigUtil.generateViewOptionsBuilder(videoFeedPropsModel)
|
|
88
|
+
val viewOptionsBuilder = FWConfigUtil.generateViewOptionsBuilder(activity, videoFeedPropsModel)
|
|
89
89
|
FireworkSdk.startPlayer(viewOptionsBuilder.build(), url)
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -142,18 +142,18 @@ class FireworkSDKModule(
|
|
|
142
142
|
.checksumRequired(false)
|
|
143
143
|
.clientId(clientId)
|
|
144
144
|
.userId(uid)
|
|
145
|
-
.imageLoader(GlideImageLoaderFactory.createInstance())
|
|
146
|
-
.addLivestreamPlayerInitializer(LivestreamPlayerInitializer())
|
|
147
|
-
.addLivestreamPlayerInitializer(MultihostLivestreamPlayerInitializer())
|
|
148
145
|
.enableCache(true)
|
|
149
|
-
// .shareBaseUrl("https://www.mytest.com")
|
|
150
|
-
// .muteOnLaunch(true)
|
|
151
146
|
shareBaseURL?.let {
|
|
152
147
|
FWGlobalDataUtil.shareBaseUrl = it
|
|
153
148
|
}
|
|
149
|
+
|
|
150
|
+
val livestreamPlayerInitializerList = FWLiveStreamUtil.livestreamPlayerInitializers()
|
|
151
|
+
for (livestreamPlayerInitializer in livestreamPlayerInitializerList) {
|
|
152
|
+
configBuilder.addLivestreamPlayerInitializer(livestreamPlayerInitializer)
|
|
153
|
+
}
|
|
154
154
|
when (videoLaunchBehavior) {
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
FWPlayerLaunchBehavior.Default -> {}
|
|
156
|
+
FWPlayerLaunchBehavior.MuteOnFirstLaunch -> {
|
|
157
157
|
configBuilder.muteOnLaunch(true)
|
|
158
158
|
}
|
|
159
159
|
else -> {}
|
|
@@ -215,26 +215,15 @@ class FireworkSDKModule(
|
|
|
215
215
|
caption = event.videoInfo.caption,
|
|
216
216
|
duration = event.videoInfo.duration,
|
|
217
217
|
hasCta = true,
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
playerHeight = event.videoInfo.playerHeight,
|
|
219
|
+
playerWidth = event.videoInfo.playerWidth,
|
|
220
|
+
id = event.videoInfo.id,
|
|
221
|
+
actionUrl = event.actionUrl,
|
|
221
222
|
)
|
|
222
223
|
)
|
|
223
224
|
}
|
|
224
225
|
|
|
225
226
|
FWEventUtils.sendCustomCTAClickEvent(reactApplicationContext, event.actionUrl)
|
|
226
|
-
|
|
227
|
-
if (!FWGlobalDataUtil.appComponentName.isNullOrBlank() && !FWGlobalDataUtil.customCTALinkContentPageRouteName.isNullOrBlank()) {
|
|
228
|
-
val activity = FWInitializationProvider.INSTANCE.resumedActivity
|
|
229
|
-
|
|
230
|
-
activity?.startActivity(
|
|
231
|
-
FWContainerActivity.createIntent(activity, FWGlobalDataUtil.appComponentName,
|
|
232
|
-
hashMapOf(
|
|
233
|
-
"initialRouteName" to FWGlobalDataUtil.customCTALinkContentPageRouteName,
|
|
234
|
-
"initialParams" to hashMapOf("url" to event.actionUrl)
|
|
235
|
-
)
|
|
236
|
-
))
|
|
237
|
-
}
|
|
238
227
|
}
|
|
239
228
|
|
|
240
229
|
@FwAnalyticCallable
|
|
@@ -248,9 +237,9 @@ class FireworkSDKModule(
|
|
|
248
237
|
caption = event.videoInfo.caption,
|
|
249
238
|
duration = event.videoInfo.duration,
|
|
250
239
|
hasCta = event.videoInfo.hasCta,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
240
|
+
playerHeight = event.videoInfo.playerHeight,
|
|
241
|
+
playerWidth = event.videoInfo.playerWidth,
|
|
242
|
+
id = event.videoInfo.id,
|
|
254
243
|
)
|
|
255
244
|
)
|
|
256
245
|
}
|
|
@@ -268,9 +257,9 @@ class FireworkSDKModule(
|
|
|
268
257
|
caption = event.videoInfo.caption,
|
|
269
258
|
duration = event.videoInfo.duration,
|
|
270
259
|
hasCta = event.videoInfo.hasCta,
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
260
|
+
playerHeight = event.videoInfo.playerHeight,
|
|
261
|
+
playerWidth = event.videoInfo.playerWidth,
|
|
262
|
+
id = event.videoInfo.id,
|
|
274
263
|
progress = progress
|
|
275
264
|
)
|
|
276
265
|
when (event) {
|
|
@@ -317,18 +306,6 @@ class FireworkSDKModule(
|
|
|
317
306
|
}
|
|
318
307
|
}
|
|
319
308
|
|
|
320
|
-
@ReactMethod
|
|
321
|
-
override fun setCustomCTALinkContentPageRouteName(name: String?, promise: Promise) {
|
|
322
|
-
FWGlobalDataUtil.customCTALinkContentPageRouteName = name
|
|
323
|
-
promise.resolve(Arguments.createMap())
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
@ReactMethod
|
|
327
|
-
override fun setAppComponentName(name: String?, promise: Promise) {
|
|
328
|
-
FWGlobalDataUtil.appComponentName = name
|
|
329
|
-
promise.resolve(Arguments.createMap())
|
|
330
|
-
}
|
|
331
|
-
|
|
332
309
|
@ReactMethod
|
|
333
310
|
override fun changeAppLanguage(language: String?, promise: Promise) {
|
|
334
311
|
val activity = FWInitializationProvider.INSTANCE.resumedActivity
|
|
@@ -337,7 +314,7 @@ class FireworkSDKModule(
|
|
|
337
314
|
return
|
|
338
315
|
}
|
|
339
316
|
UiThreadUtil.runOnUiThread {
|
|
340
|
-
val result = FWLanguageUtil.changeLanguage(
|
|
317
|
+
val result = FWLanguageUtil.getInstance(activity).changeLanguage(language, activity)
|
|
341
318
|
promise.resolve(result)
|
|
342
319
|
}
|
|
343
320
|
}
|