react-native-firework-sdk 2.2.5 → 2.3.1
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 +5 -5
- 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/FireworkVideoUI/Podfile +1 -1
- package/ios/FireworkVideoUI/Podfile.lock +4 -4
- 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 +55 -15
- 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 +54 -15
- 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 +66 -9
- 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,22 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWBadgeTextType
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWAdBadgeConfigModelSerializer {
|
|
7
|
+
|
|
8
|
+
private const val BADGE_TEXT_TYPE_KEY = "badgeTextType"
|
|
9
|
+
private const val BACKGROUND_COLOR_KEY = "backgroundColor"
|
|
10
|
+
private const val TEXT_COLOR_KEY = "textColor"
|
|
11
|
+
private const val FONT_INFO_KEY = "androidFontInfo"
|
|
12
|
+
|
|
13
|
+
fun serialize(model: FWAdBadgeConfigModel?): JSONObject? {
|
|
14
|
+
model ?: return null
|
|
15
|
+
val jsonObject = JSONObject()
|
|
16
|
+
jsonObject.put(BADGE_TEXT_TYPE_KEY, FWBadgeTextType.serialize(model.badgeTextType))
|
|
17
|
+
jsonObject.put(BACKGROUND_COLOR_KEY, model.backgroundColor)
|
|
18
|
+
jsonObject.put(TEXT_COLOR_KEY, model.textColor)
|
|
19
|
+
jsonObject.put(FONT_INFO_KEY, FWFontInfoModelSerializer.serialize(model.fontInfo))
|
|
20
|
+
return jsonObject
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWSystemTypeface
|
|
5
4
|
|
|
6
|
-
@Parcelize
|
|
7
5
|
data class FWFontInfoModel(
|
|
8
6
|
var isCustom: Boolean? = null,
|
|
9
|
-
var typefaceName:
|
|
10
|
-
)
|
|
7
|
+
var typefaceName: FWSystemTypeface? = null,
|
|
8
|
+
)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWSystemTypeface
|
|
3
4
|
import org.json.JSONObject
|
|
4
5
|
|
|
5
6
|
object FWFontInfoModelDeserializer {
|
|
@@ -15,7 +16,7 @@ object FWFontInfoModelDeserializer {
|
|
|
15
16
|
|
|
16
17
|
return FWFontInfoModel(
|
|
17
18
|
isCustom = isCustom,
|
|
18
|
-
typefaceName = typefaceName,
|
|
19
|
+
typefaceName = if (!typefaceName.isNullOrBlank()) FWSystemTypeface.deserialize(typefaceName) else null,
|
|
19
20
|
)
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWSystemTypeface
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWFontInfoModelSerializer {
|
|
7
|
+
|
|
8
|
+
private const val IS_CUSTOM_KEY = "isCustom"
|
|
9
|
+
private const val TYPEFACE_NAME_KEY = "typefaceName"
|
|
10
|
+
|
|
11
|
+
fun serialize(model: FWFontInfoModel?): JSONObject? {
|
|
12
|
+
model ?: return null
|
|
13
|
+
val jsonObject = JSONObject()
|
|
14
|
+
jsonObject.put(IS_CUSTOM_KEY, model.isCustom)
|
|
15
|
+
jsonObject.put(TYPEFACE_NAME_KEY, FWSystemTypeface.serialize(model.typefaceName))
|
|
16
|
+
return jsonObject
|
|
17
|
+
}
|
|
18
|
+
}
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelDeserializer.kt
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWGradientDrawableOrientation
|
|
4
|
+
import org.json.JSONArray
|
|
5
|
+
import org.json.JSONObject
|
|
6
|
+
|
|
7
|
+
object FWGradientDrawableModelDeserializer {
|
|
8
|
+
|
|
9
|
+
private const val ORIENTATION_KEY = "orientation"
|
|
10
|
+
private const val COLORS_KEY = "colors"
|
|
11
|
+
|
|
12
|
+
fun deserialize(responseJson: JSONObject?): FWGradientDrawableModel? {
|
|
13
|
+
responseJson ?: return null
|
|
14
|
+
|
|
15
|
+
val orientation = if (responseJson.has(ORIENTATION_KEY)) responseJson.optString(ORIENTATION_KEY) else null
|
|
16
|
+
val colorsJsonArray = if (responseJson.has(COLORS_KEY)) responseJson.optJSONArray(COLORS_KEY) else null
|
|
17
|
+
val colors = deserializeColors(colorsJsonArray)
|
|
18
|
+
|
|
19
|
+
return FWGradientDrawableModel(
|
|
20
|
+
orientation = if (!orientation.isNullOrBlank()) FWGradientDrawableOrientation.deserialize(orientation) else null,
|
|
21
|
+
colors = colors,
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
private fun deserializeColors(colorsJsonArray: JSONArray?): List<String>? {
|
|
26
|
+
colorsJsonArray ?: return null
|
|
27
|
+
|
|
28
|
+
val list = mutableListOf<String>()
|
|
29
|
+
(0 until colorsJsonArray.length()).forEach {
|
|
30
|
+
val value = colorsJsonArray.getString(it)
|
|
31
|
+
list.add(value)
|
|
32
|
+
}
|
|
33
|
+
return list
|
|
34
|
+
}
|
|
35
|
+
}
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelSerializer.kt
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWGradientDrawableOrientation
|
|
4
|
+
import org.json.JSONArray
|
|
5
|
+
import org.json.JSONObject
|
|
6
|
+
|
|
7
|
+
object FWGradientDrawableModelSerializer {
|
|
8
|
+
|
|
9
|
+
private const val ORIENTATION_KEY = "orientation"
|
|
10
|
+
private const val COLORS_KEY = "colors"
|
|
11
|
+
|
|
12
|
+
fun serialize(model: FWGradientDrawableModel?): JSONObject? {
|
|
13
|
+
model ?: return null
|
|
14
|
+
val jsonObject = JSONObject()
|
|
15
|
+
jsonObject.put(ORIENTATION_KEY, FWGradientDrawableOrientation.serialize(model.orientation))
|
|
16
|
+
|
|
17
|
+
if (!model.colors.isNullOrEmpty()) {
|
|
18
|
+
val colorJsonArray = JSONArray()
|
|
19
|
+
for (color in model.colors) {
|
|
20
|
+
colorJsonArray.put(color)
|
|
21
|
+
}
|
|
22
|
+
jsonObject.put(COLORS_KEY, colorJsonArray)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return jsonObject
|
|
26
|
+
}
|
|
27
|
+
}
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import android.os.Parcelable
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
5
|
-
|
|
6
|
-
@Parcelize
|
|
7
3
|
data class FWLiveStreamMessageDetailsModel(
|
|
8
4
|
val messageId: String? = null,
|
|
9
5
|
val username: String? = null,
|
|
10
6
|
val text: String? = null,
|
|
11
|
-
)
|
|
7
|
+
)
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt
CHANGED
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWCtaButtonTextValue
|
|
5
4
|
|
|
6
|
-
@Parcelize
|
|
7
5
|
data class FWProductInfoViewConfiguration(
|
|
8
6
|
val ctaButton: CtaButtonConfiguration? = null,
|
|
9
7
|
val linkButton: LinkButtonConfiguration? = null,
|
|
10
|
-
)
|
|
8
|
+
) {
|
|
11
9
|
|
|
12
|
-
@Parcelize
|
|
13
10
|
data class CtaButtonConfiguration(
|
|
14
|
-
val text:
|
|
11
|
+
val text: FWCtaButtonTextValue? = null,
|
|
15
12
|
val backgroundColor: String? = null,
|
|
16
13
|
val textColor: String? = null,
|
|
17
14
|
val fontSize: Int? = null,
|
|
18
|
-
)
|
|
15
|
+
)
|
|
19
16
|
|
|
20
|
-
enum class TextValue(val rawValue: String) {
|
|
21
|
-
AddToCart("addToCart"),
|
|
22
|
-
ShopNow("shopNow"),
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Parcelize
|
|
27
17
|
data class LinkButtonConfiguration(
|
|
28
18
|
val isHidden: Boolean? = null,
|
|
29
|
-
)
|
|
19
|
+
)
|
|
30
20
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWCtaButtonTextValue
|
|
3
4
|
import org.json.JSONObject
|
|
4
5
|
|
|
5
6
|
object FWProductInfoViewConfigurationDeserializer {
|
|
@@ -34,16 +35,8 @@ object FWProductInfoViewConfigurationDeserializer {
|
|
|
34
35
|
val textColor = if (ctaButtonConfiguration.has(TEXT_COLOR_KEY)) ctaButtonConfiguration.optString(TEXT_COLOR_KEY) else null
|
|
35
36
|
val fontSize = if (ctaButtonConfiguration.has(FONT_SIZE_KEY)) ctaButtonConfiguration.optInt(FONT_SIZE_KEY) else null
|
|
36
37
|
|
|
37
|
-
var text = FWProductInfoViewConfiguration.CtaButtonConfiguration.TextValue.AddToCart
|
|
38
|
-
when (textString) {
|
|
39
|
-
FWProductInfoViewConfiguration.CtaButtonConfiguration.TextValue.ShopNow.rawValue -> {
|
|
40
|
-
text = FWProductInfoViewConfiguration.CtaButtonConfiguration.TextValue.ShopNow
|
|
41
|
-
}
|
|
42
|
-
else -> {}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
38
|
return FWProductInfoViewConfiguration.CtaButtonConfiguration(
|
|
46
|
-
text =
|
|
39
|
+
text = FWCtaButtonTextValue.deserialize(textString ?: FWCtaButtonTextValue.AddToCart.rawValue),
|
|
47
40
|
backgroundColor = backgroundColor,
|
|
48
41
|
textColor = textColor,
|
|
49
42
|
fontSize = fontSize,
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWCtaButtonTextValue
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWProductInfoViewConfigurationSerializer {
|
|
7
|
+
|
|
8
|
+
private const val CTA_BUTTON = "ctaButton"
|
|
9
|
+
private const val LINK_BUTTON = "linkButton"
|
|
10
|
+
|
|
11
|
+
private const val TEXT_KEY = "text"
|
|
12
|
+
private const val BACKGROUND_COLOR_KEY = "backgroundColor"
|
|
13
|
+
private const val TEXT_COLOR_KEY = "textColor"
|
|
14
|
+
private const val FONT_SIZE_KEY = "fontSize"
|
|
15
|
+
|
|
16
|
+
private const val IS_HIDDEN_KEY = "isHidden"
|
|
17
|
+
|
|
18
|
+
fun serialize(model: FWProductInfoViewConfiguration?): JSONObject? {
|
|
19
|
+
model ?: return null
|
|
20
|
+
val jsonObject = JSONObject()
|
|
21
|
+
jsonObject.put(CTA_BUTTON, serializeCtaButtonConfiguration(model.ctaButton))
|
|
22
|
+
jsonObject.put(LINK_BUTTON, serializeLinkButtonConfiguration(model.linkButton))
|
|
23
|
+
return jsonObject
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private fun serializeCtaButtonConfiguration(model: FWProductInfoViewConfiguration.CtaButtonConfiguration?): JSONObject? {
|
|
27
|
+
model ?: return null
|
|
28
|
+
val jsonObject = JSONObject()
|
|
29
|
+
jsonObject.put(TEXT_KEY, FWCtaButtonTextValue.serialize(model.text))
|
|
30
|
+
jsonObject.put(BACKGROUND_COLOR_KEY, model.backgroundColor)
|
|
31
|
+
jsonObject.put(TEXT_COLOR_KEY, model.textColor)
|
|
32
|
+
jsonObject.put(FONT_SIZE_KEY, model.fontSize)
|
|
33
|
+
return jsonObject
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private fun serializeLinkButtonConfiguration(model: FWProductInfoViewConfiguration.LinkButtonConfiguration?): JSONObject? {
|
|
37
|
+
model ?: return null
|
|
38
|
+
val jsonObject = JSONObject()
|
|
39
|
+
jsonObject.put(IS_HIDDEN_KEY, model.isHidden)
|
|
40
|
+
return jsonObject
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWPlayerLaunchBehavior
|
|
5
4
|
|
|
6
|
-
@Parcelize
|
|
7
5
|
data class FWSDKInitOptionsModel(
|
|
8
6
|
val userId: String? = null,
|
|
9
7
|
val shareBaseURL: String? = null,
|
|
10
|
-
val videoLaunchBehavior:
|
|
11
|
-
)
|
|
8
|
+
val videoLaunchBehavior: FWPlayerLaunchBehavior? = null,
|
|
9
|
+
)
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWPlayerLaunchBehavior
|
|
3
4
|
import org.json.JSONObject
|
|
4
5
|
|
|
5
6
|
object FWSDKInitOptionsModelDeserializer {
|
|
@@ -18,7 +19,7 @@ object FWSDKInitOptionsModelDeserializer {
|
|
|
18
19
|
return FWSDKInitOptionsModel(
|
|
19
20
|
userId = userId,
|
|
20
21
|
shareBaseURL = shareBaseURL,
|
|
21
|
-
videoLaunchBehavior = videoLaunchBehavior,
|
|
22
|
+
videoLaunchBehavior = if (!videoLaunchBehavior.isNullOrBlank()) FWPlayerLaunchBehavior.deserialize(videoLaunchBehavior) else null ,
|
|
22
23
|
)
|
|
23
24
|
}
|
|
24
25
|
}
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWPlayerLaunchBehavior
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWSDKInitOptionsModelSerializer {
|
|
7
|
+
|
|
8
|
+
private const val USER_ID_KEY = "userId"
|
|
9
|
+
private const val SHARE_BASE_URL_KEY = "shareBaseURL"
|
|
10
|
+
private const val VIDEO_LAUNCH_BEHAVIOR_KEY = "videoLaunchBehavior"
|
|
11
|
+
|
|
12
|
+
fun serialize(model: FWSDKInitOptionsModel?): JSONObject? {
|
|
13
|
+
model ?: return null
|
|
14
|
+
val jsonObject = JSONObject()
|
|
15
|
+
jsonObject.put(USER_ID_KEY, model.userId)
|
|
16
|
+
jsonObject.put(SHARE_BASE_URL_KEY, model.shareBaseURL)
|
|
17
|
+
jsonObject.put(VIDEO_LAUNCH_BEHAVIOR_KEY, FWPlayerLaunchBehavior.serialize(model.videoLaunchBehavior))
|
|
18
|
+
return jsonObject
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWShoppingCtaResultRes
|
|
5
4
|
|
|
6
|
-
@Parcelize
|
|
7
5
|
data class FWShoppingCtaResult(
|
|
8
|
-
val res:
|
|
6
|
+
val res: FWShoppingCtaResultRes? = null,
|
|
9
7
|
val tips: String? = null,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
enum class Res(val rawValue: String) {
|
|
13
|
-
Success("success"),
|
|
14
|
-
Fail("fail"),
|
|
15
|
-
Loading("loading"),
|
|
16
|
-
}
|
|
17
|
-
}
|
|
8
|
+
)
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWShoppingCtaResultRes
|
|
3
4
|
import org.json.JSONObject
|
|
4
5
|
|
|
5
6
|
object FWShoppingCtaResultDeserializer {
|
|
@@ -7,26 +8,14 @@ object FWShoppingCtaResultDeserializer {
|
|
|
7
8
|
private const val RES_KEY = "res"
|
|
8
9
|
private const val TIPS_KEY = "tips"
|
|
9
10
|
|
|
10
|
-
|
|
11
11
|
fun deserialize(responseJson: JSONObject?): FWShoppingCtaResult? {
|
|
12
12
|
responseJson?: return null
|
|
13
13
|
|
|
14
14
|
val resString = if (responseJson.has(RES_KEY)) responseJson.optString(RES_KEY) else null
|
|
15
15
|
val tips = if (responseJson.has(TIPS_KEY)) responseJson.optString(TIPS_KEY) else null
|
|
16
16
|
|
|
17
|
-
var res = FWShoppingCtaResult.Res.Success
|
|
18
|
-
when (resString) {
|
|
19
|
-
FWShoppingCtaResult.Res.Fail.rawValue -> {
|
|
20
|
-
res = FWShoppingCtaResult.Res.Fail
|
|
21
|
-
}
|
|
22
|
-
FWShoppingCtaResult.Res.Loading.rawValue -> {
|
|
23
|
-
res = FWShoppingCtaResult.Res.Loading
|
|
24
|
-
}
|
|
25
|
-
else -> {}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
17
|
return FWShoppingCtaResult(
|
|
29
|
-
res =
|
|
18
|
+
res = if (!resString.isNullOrBlank()) FWShoppingCtaResultRes.deserialize(resString) else null,
|
|
30
19
|
tips = tips,
|
|
31
20
|
)
|
|
32
21
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWShoppingCtaResultRes
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWShoppingCtaResultSerializer {
|
|
7
|
+
|
|
8
|
+
private const val RES_KEY = "res"
|
|
9
|
+
private const val TIPS_KEY = "tips"
|
|
10
|
+
|
|
11
|
+
fun serialize(model: FWShoppingCtaResult?): JSONObject? {
|
|
12
|
+
model ?: return null
|
|
13
|
+
val jsonObject = JSONObject()
|
|
14
|
+
jsonObject.put(RES_KEY, FWShoppingCtaResultRes.serialize(model.res))
|
|
15
|
+
jsonObject.put(TIPS_KEY, model.tips)
|
|
16
|
+
return jsonObject
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedTitlePosition
|
|
5
4
|
|
|
6
|
-
@Parcelize
|
|
7
5
|
data class FWVideoFeedConfigModel(
|
|
8
6
|
val backgroundColor: String? = null,
|
|
9
7
|
val cornerRadius: Int? = null,
|
|
10
8
|
val title: FWTitleModel? = null,
|
|
11
|
-
val titlePosition:
|
|
9
|
+
val titlePosition: FWVideoFeedTitlePosition? = null,
|
|
12
10
|
val playIcon: FWPlayIconModel? = null,
|
|
13
11
|
val showAdBadge: Boolean? = null,
|
|
14
12
|
val enableAutoplay: Boolean? = null,
|
|
15
13
|
val gridColumns: Int? = null,
|
|
16
|
-
|
|
14
|
+
val itemSpacing: Int? = null,
|
|
15
|
+
) {
|
|
17
16
|
|
|
18
|
-
@Parcelize
|
|
19
17
|
data class FWTitleModel(
|
|
20
18
|
val hidden: Boolean? = null,
|
|
21
19
|
val textColor: String? = null,
|
|
22
20
|
val fontSize: Int? = null,
|
|
23
21
|
val fontInfo: FWFontInfoModel? = null,
|
|
24
|
-
|
|
22
|
+
val backgroundColor: String? = null,
|
|
23
|
+
val gradientDrawable: FWGradientDrawableModel? = null,
|
|
24
|
+
)
|
|
25
25
|
|
|
26
|
-
@Parcelize
|
|
27
26
|
data class FWPlayIconModel(
|
|
28
27
|
val hidden: Boolean? = null,
|
|
29
28
|
val iconWidth: Int? = null,
|
|
30
|
-
)
|
|
29
|
+
)
|
|
31
30
|
}
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedTitlePosition
|
|
3
4
|
import org.json.JSONObject
|
|
4
5
|
|
|
5
6
|
object FWVideoFeedConfigModelDeserializer {
|
|
@@ -12,11 +13,13 @@ object FWVideoFeedConfigModelDeserializer {
|
|
|
12
13
|
private const val SHOW_AD_BADGE_KEY = "showAdBadge"
|
|
13
14
|
private const val ENABLE_AUTOPLAY_KEY = "enableAutoplay"
|
|
14
15
|
private const val GRID_COLUMNS_KEY = "gridColumns"
|
|
16
|
+
private const val ITEM_SPACING_KEY = "itemSpacing"
|
|
15
17
|
|
|
16
18
|
private const val HIDDEN_KEY = "hidden"
|
|
17
19
|
private const val TEXT_COLOR_KEY = "textColor"
|
|
18
20
|
private const val FONT_SIZE_KEY = "fontSize"
|
|
19
21
|
private const val FONT_INFO_KEY = "androidFontInfo"
|
|
22
|
+
private const val GRADIENT_DRAWABLE_KEY = "gradientDrawable"
|
|
20
23
|
|
|
21
24
|
private const val ICON_WIDTH_KEY = "iconWidth"
|
|
22
25
|
|
|
@@ -24,23 +27,25 @@ object FWVideoFeedConfigModelDeserializer {
|
|
|
24
27
|
responseJson?: return null
|
|
25
28
|
|
|
26
29
|
val backgroundColor = if (responseJson.has(BACKGROUND_COLOR_KEY)) responseJson.optString(BACKGROUND_COLOR_KEY) else null
|
|
27
|
-
val cornerRadius = if (responseJson.
|
|
30
|
+
val cornerRadius = if (!responseJson.isNull(CORNER_RADIUS_KEY)) responseJson.optInt(CORNER_RADIUS_KEY) else null
|
|
28
31
|
val title = if (responseJson.has(TITLE_KEY)) deserializeTitle(responseJson.optJSONObject(TITLE_KEY)) else null
|
|
29
32
|
val titlePosition = if (responseJson.has(TITLE_POSITION_KEY)) responseJson.optString(TITLE_POSITION_KEY) else null
|
|
30
33
|
val playIcon = if (responseJson.has(PLAY_ICON_KEY)) deserializePlayIcon(responseJson.optJSONObject(PLAY_ICON_KEY)) else null
|
|
31
34
|
val showAdBadge = if (responseJson.has(SHOW_AD_BADGE_KEY)) responseJson.optBoolean(SHOW_AD_BADGE_KEY) else null
|
|
32
35
|
val enableAutoplay = if (responseJson.has(ENABLE_AUTOPLAY_KEY)) responseJson.optBoolean(ENABLE_AUTOPLAY_KEY) else null
|
|
33
|
-
val gridColumns = if (responseJson.
|
|
36
|
+
val gridColumns = if (!responseJson.isNull(GRID_COLUMNS_KEY)) responseJson.optInt(GRID_COLUMNS_KEY) else null
|
|
37
|
+
val itemSpacing = if (!responseJson.isNull(ITEM_SPACING_KEY)) responseJson.optInt(ITEM_SPACING_KEY) else null
|
|
34
38
|
|
|
35
39
|
return FWVideoFeedConfigModel(
|
|
36
40
|
backgroundColor = backgroundColor,
|
|
37
41
|
cornerRadius = cornerRadius,
|
|
38
42
|
title = title,
|
|
39
|
-
titlePosition = titlePosition,
|
|
43
|
+
titlePosition = if (!titlePosition.isNullOrBlank()) FWVideoFeedTitlePosition.deserialize(titlePosition) else null,
|
|
40
44
|
playIcon = playIcon,
|
|
41
45
|
showAdBadge = showAdBadge,
|
|
42
46
|
enableAutoplay = enableAutoplay,
|
|
43
47
|
gridColumns = gridColumns,
|
|
48
|
+
itemSpacing = itemSpacing,
|
|
44
49
|
)
|
|
45
50
|
}
|
|
46
51
|
|
|
@@ -51,18 +56,24 @@ object FWVideoFeedConfigModelDeserializer {
|
|
|
51
56
|
val textColor = if (titleJson.has(TEXT_COLOR_KEY)) titleJson.optString(TEXT_COLOR_KEY) else null
|
|
52
57
|
val fontSize = if (titleJson.has(FONT_SIZE_KEY)) titleJson.optInt(FONT_SIZE_KEY) else null
|
|
53
58
|
val fontInfo = FWFontInfoModelDeserializer.deserialize(titleJson.optJSONObject(FONT_INFO_KEY))
|
|
59
|
+
val backgroundColor = if (titleJson.has(BACKGROUND_COLOR_KEY)) titleJson.optString(BACKGROUND_COLOR_KEY) else null
|
|
60
|
+
val gradientDrawable = FWGradientDrawableModelDeserializer.deserialize(titleJson.optJSONObject(GRADIENT_DRAWABLE_KEY))
|
|
54
61
|
|
|
55
62
|
return FWVideoFeedConfigModel.FWTitleModel(
|
|
56
63
|
hidden = hidden,
|
|
57
64
|
textColor = textColor,
|
|
58
65
|
fontSize = fontSize,
|
|
59
|
-
fontInfo = fontInfo
|
|
66
|
+
fontInfo = fontInfo,
|
|
67
|
+
backgroundColor = backgroundColor,
|
|
68
|
+
gradientDrawable = gradientDrawable,
|
|
60
69
|
)
|
|
61
70
|
}
|
|
62
71
|
|
|
63
72
|
private fun deserializePlayIcon(titleJson: JSONObject?): FWVideoFeedConfigModel.FWPlayIconModel {
|
|
64
|
-
|
|
65
|
-
|
|
73
|
+
titleJson ?: return FWVideoFeedConfigModel.FWPlayIconModel()
|
|
74
|
+
|
|
75
|
+
val hidden = titleJson.optBoolean(HIDDEN_KEY)
|
|
76
|
+
val iconWidth = if (!titleJson.isNull(ICON_WIDTH_KEY)) titleJson.optInt(ICON_WIDTH_KEY) else null
|
|
66
77
|
|
|
67
78
|
return FWVideoFeedConfigModel.FWPlayIconModel(
|
|
68
79
|
hidden = hidden,
|
package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelSerializer.kt
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.models
|
|
2
|
+
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedTitlePosition
|
|
4
|
+
import org.json.JSONObject
|
|
5
|
+
|
|
6
|
+
object FWVideoFeedConfigModelSerializer {
|
|
7
|
+
|
|
8
|
+
private const val BACKGROUND_COLOR_KEY = "backgroundColor"
|
|
9
|
+
private const val CORNER_RADIUS_KEY = "cornerRadius"
|
|
10
|
+
private const val TITLE_KEY = "title"
|
|
11
|
+
private const val TITLE_POSITION_KEY = "titlePosition"
|
|
12
|
+
private const val PLAY_ICON_KEY = "playIcon"
|
|
13
|
+
private const val SHOW_AD_BADGE_KEY = "showAdBadge"
|
|
14
|
+
private const val ENABLE_AUTOPLAY_KEY = "enableAutoplay"
|
|
15
|
+
private const val GRID_COLUMNS_KEY = "gridColumns"
|
|
16
|
+
private const val ITEM_SPACING_KEY = "itemSpacing"
|
|
17
|
+
|
|
18
|
+
private const val HIDDEN_KEY = "hidden"
|
|
19
|
+
private const val TEXT_COLOR_KEY = "textColor"
|
|
20
|
+
private const val FONT_SIZE_KEY = "fontSize"
|
|
21
|
+
private const val FONT_INFO_KEY = "androidFontInfo"
|
|
22
|
+
private const val GRADIENT_DRAWABLE_KEY = "gradientDrawable"
|
|
23
|
+
|
|
24
|
+
private const val ICON_WIDTH_KEY = "iconWidth"
|
|
25
|
+
|
|
26
|
+
fun serialize(model: FWVideoFeedConfigModel?): JSONObject? {
|
|
27
|
+
model ?: return null
|
|
28
|
+
val jsonObject = JSONObject()
|
|
29
|
+
jsonObject.put(BACKGROUND_COLOR_KEY, model.backgroundColor)
|
|
30
|
+
jsonObject.put(CORNER_RADIUS_KEY, model.cornerRadius)
|
|
31
|
+
jsonObject.put(TITLE_KEY, serializeTitle(model.title))
|
|
32
|
+
jsonObject.put(TITLE_POSITION_KEY, FWVideoFeedTitlePosition.serialize(model.titlePosition))
|
|
33
|
+
jsonObject.put(PLAY_ICON_KEY, serializePlayIcon(model.playIcon))
|
|
34
|
+
jsonObject.put(SHOW_AD_BADGE_KEY, model.showAdBadge)
|
|
35
|
+
jsonObject.put(ENABLE_AUTOPLAY_KEY, model.enableAutoplay)
|
|
36
|
+
jsonObject.put(GRID_COLUMNS_KEY, model.gridColumns)
|
|
37
|
+
jsonObject.put(ITEM_SPACING_KEY, model.itemSpacing)
|
|
38
|
+
return jsonObject
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private fun serializeTitle(model: FWVideoFeedConfigModel.FWTitleModel?): JSONObject? {
|
|
42
|
+
model ?: return null
|
|
43
|
+
val jsonObject = JSONObject()
|
|
44
|
+
jsonObject.put(HIDDEN_KEY, model.hidden)
|
|
45
|
+
jsonObject.put(TEXT_COLOR_KEY, model.textColor)
|
|
46
|
+
jsonObject.put(FONT_SIZE_KEY, model.fontSize)
|
|
47
|
+
jsonObject.put(FONT_INFO_KEY, FWFontInfoModelSerializer.serialize(model.fontInfo))
|
|
48
|
+
jsonObject.put(GRADIENT_DRAWABLE_KEY, FWGradientDrawableModelSerializer.serialize(model.gradientDrawable))
|
|
49
|
+
return jsonObject
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private fun serializePlayIcon(model: FWVideoFeedConfigModel.FWPlayIconModel?): JSONObject? {
|
|
53
|
+
model ?: return null
|
|
54
|
+
val jsonObject = JSONObject()
|
|
55
|
+
jsonObject.put(HIDDEN_KEY, model.hidden)
|
|
56
|
+
jsonObject.put(ICON_WIDTH_KEY, model.iconWidth)
|
|
57
|
+
return jsonObject
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import android.os.Parcelable
|
|
4
|
-
import kotlinx.android.parcel.Parcelize
|
|
5
|
-
|
|
6
|
-
@Parcelize
|
|
7
3
|
data class FWVideoFeedItemDetailsModel(
|
|
8
4
|
val index: Int?,
|
|
9
5
|
val id: String?,
|
|
@@ -14,4 +10,4 @@ data class FWVideoFeedItemDetailsModel(
|
|
|
14
10
|
val playlist: String?,
|
|
15
11
|
val channel: String?,
|
|
16
12
|
val dynamicContentParameters: Map<String, List<String>>?,
|
|
17
|
-
)
|
|
13
|
+
)
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedMode
|
|
4
|
+
import com.fireworksdk.bridge.models.enums.FWVideoFeedSource
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
@Parcelize
|
|
8
6
|
data class FWVideoFeedPropsModel(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
val source: FWVideoFeedSource? = null,
|
|
8
|
+
val channel: String? = null,
|
|
9
|
+
val playlist: String? = null,
|
|
10
|
+
val playlistGroup: String? = null,
|
|
11
|
+
val hashtagFilterExpression: String? = null,
|
|
12
|
+
val mode: FWVideoFeedMode? = null,
|
|
13
|
+
val enablePictureInPicture: Boolean? = null,
|
|
14
|
+
val videoFeedConfiguration: FWVideoFeedConfigModel? = null,
|
|
15
|
+
val videoPlayerConfiguration: FWVideoPlayerConfigModel? = null,
|
|
16
|
+
val dynamicContentParameters: Map<String, List<String>>? = null,
|
|
17
|
+
val marginRight: Double? = null,
|
|
18
|
+
)
|