react-native-firework-sdk 2.2.5 → 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.
Files changed (222) hide show
  1. package/FireworkVideoUI.xcframework/Info.plist +5 -5
  2. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
  3. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
  4. package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.abi.json +2 -9
  5. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
  6. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
  7. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.abi.json +2 -9
  8. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +2 -9
  9. package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +9 -9
  10. package/android/build.gradle +9 -39
  11. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  12. package/android/gradle.properties +7 -5
  13. package/android/proguard-rules.pro +5 -26
  14. package/android/src/main/AndroidManifest.xml +0 -3
  15. package/android/src/main/java/com/fireworksdk/bridge/FireworkSDKPackage.kt +1 -1
  16. package/android/src/main/java/com/fireworksdk/bridge/components/base/FWBaseFragment.kt +10 -0
  17. package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +157 -0
  18. package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFrameLayout.kt +19 -0
  19. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +15 -5
  20. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +6 -7
  21. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +5 -1
  22. package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelSerializer.kt +22 -0
  23. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +3 -5
  24. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +2 -1
  25. package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelSerializer.kt +18 -0
  26. package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModel.kt +8 -0
  27. package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelDeserializer.kt +35 -0
  28. package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelSerializer.kt +27 -0
  29. package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +1 -5
  30. package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +1 -5
  31. package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +5 -15
  32. package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +2 -9
  33. package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationSerializer.kt +42 -0
  34. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +3 -5
  35. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +2 -1
  36. package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt +20 -0
  37. package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +3 -12
  38. package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +2 -13
  39. package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultSerializer.kt +18 -0
  40. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +8 -9
  41. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +17 -6
  42. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelSerializer.kt +59 -0
  43. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -5
  44. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +14 -15
  45. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +14 -4
  46. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelSerializer.kt +56 -0
  47. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +11 -8
  48. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +11 -12
  49. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +11 -7
  50. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +63 -0
  51. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProduct.kt +4 -11
  52. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductSerializer.kt +82 -0
  53. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWBadgeTextType.kt +18 -0
  54. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaButtonTextValue.kt +18 -0
  55. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaDelayType.kt +18 -0
  56. package/android/src/main/java/com/fireworksdk/bridge/models/{FWEventName.kt → enums/FWEventName.kt} +1 -1
  57. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWGradientDrawableOrientation.kt +24 -0
  58. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerLaunchBehavior.kt +18 -0
  59. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerStyle.kt +18 -0
  60. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWShoppingCtaResultRes.kt +19 -0
  61. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWSystemTypeface.kt +21 -0
  62. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoCompleteAction.kt +18 -0
  63. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedMode.kt +19 -0
  64. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedSource.kt +22 -0
  65. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedTitlePosition.kt +19 -0
  66. package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoPlayerCTAWidth.kt +19 -0
  67. package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWReactNativeSDK.kt +22 -0
  68. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +61 -32
  69. package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +3 -2
  70. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +0 -1
  71. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +0 -1
  72. package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +0 -2
  73. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +2 -2
  74. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +0 -6
  75. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +25 -32
  76. package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +24 -47
  77. package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +17 -44
  78. package/android/src/main/java/com/fireworksdk/bridge/utils/FWBundleUtils.kt +46 -21
  79. package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +165 -86
  80. package/android/src/main/java/com/fireworksdk/bridge/utils/FWFragmentUtil.kt +51 -0
  81. package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +1 -5
  82. package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +77 -80
  83. package/android/src/main/java/com/fireworksdk/bridge/utils/FWLiveStreamUtil.kt +17 -0
  84. package/android/src/main/java/com/fireworksdk/bridge/utils/FWSingletonHolder.kt +25 -0
  85. package/android/src/main/java/com/fireworksdk/bridge/utils/FWStatusBarUtil.kt +28 -0
  86. package/android/src/main/res/layout/fw_bridge_story_block.xml +5 -12
  87. package/ios/Components/VideoFeed.swift +39 -19
  88. package/ios/Components/VideoFeedConfiguration.swift +4 -5
  89. package/ios/Components/VideoFeedManager.swift +1 -1
  90. package/ios/Components/VideoPlayerConfiguration.swift +17 -0
  91. package/ios/FireworkSdk.xcodeproj/project.pbxproj +197 -205
  92. package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +23 -8
  93. package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +1 -18
  94. package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +4 -1
  95. package/ios/Models/NativeToRN/FireworkEventName.swift +0 -1
  96. package/ios/Models/NativeToRN/FireworkSDK+Json.swift +1 -1
  97. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +6 -157
  98. package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -21
  99. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
  100. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +1 -12
  101. package/ios/Modules/LiveStream/LiveStreamModule.m +1 -1
  102. package/ios/Modules/LiveStream/LiveStreamModule.swift +4 -2
  103. package/ios/Modules/Shopping/FWCartViewController.swift +0 -75
  104. package/ios/Modules/Shopping/ShoppingModule.m +1 -3
  105. package/ios/Modules/Shopping/ShoppingModule.swift +12 -47
  106. package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +1 -1
  107. package/lib/commonjs/FireworkSDK.js +31 -15
  108. package/lib/commonjs/FireworkSDK.js.map +1 -1
  109. package/lib/commonjs/LiveStream.js.map +1 -1
  110. package/lib/commonjs/VideoShopping.js +43 -30
  111. package/lib/commonjs/VideoShopping.js.map +1 -1
  112. package/lib/commonjs/components/StoryBlock.js +55 -15
  113. package/lib/commonjs/components/StoryBlock.js.map +1 -1
  114. package/lib/commonjs/components/VideoFeed.js +112 -24
  115. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  116. package/lib/commonjs/index.js.map +1 -1
  117. package/lib/commonjs/models/GradientDrawable.js +2 -0
  118. package/lib/commonjs/models/GradientDrawable.js.map +1 -0
  119. package/lib/commonjs/models/StoryBlockConfiguration.js +6 -0
  120. package/lib/commonjs/models/StoryBlockConfiguration.js.map +1 -0
  121. package/lib/commonjs/models/VideoPlayerCTADelay.js +2 -0
  122. package/lib/commonjs/models/VideoPlayerCTADelay.js.map +1 -0
  123. package/lib/commonjs/models/VideoPlayerCTAStyle.js +6 -0
  124. package/lib/commonjs/models/VideoPlayerCTAStyle.js.map +1 -0
  125. package/lib/commonjs/models/VideoPlayerCTAWidth.js +2 -0
  126. package/lib/commonjs/models/VideoPlayerCTAWidth.js.map +1 -0
  127. package/lib/commonjs/models/VideoPlayerCompleteAction.js +2 -0
  128. package/lib/commonjs/models/VideoPlayerCompleteAction.js.map +1 -0
  129. package/lib/commonjs/models/VideoPlayerStyle.js +2 -0
  130. package/lib/commonjs/models/VideoPlayerStyle.js.map +1 -0
  131. package/lib/commonjs/modules/LiveStreamModule.js.map +1 -1
  132. package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
  133. package/lib/commonjs/utils/FWGlobalState.js +47 -0
  134. package/lib/commonjs/utils/FWGlobalState.js.map +1 -0
  135. package/lib/module/FireworkSDK.js +30 -14
  136. package/lib/module/FireworkSDK.js.map +1 -1
  137. package/lib/module/LiveStream.js.map +1 -1
  138. package/lib/module/VideoShopping.js +43 -29
  139. package/lib/module/VideoShopping.js.map +1 -1
  140. package/lib/module/components/StoryBlock.js +54 -15
  141. package/lib/module/components/StoryBlock.js.map +1 -1
  142. package/lib/module/components/VideoFeed.js +113 -24
  143. package/lib/module/components/VideoFeed.js.map +1 -1
  144. package/lib/module/index.js.map +1 -1
  145. package/lib/module/models/GradientDrawable.js +2 -0
  146. package/lib/module/models/GradientDrawable.js.map +1 -0
  147. package/lib/module/models/StoryBlockConfiguration.js +2 -0
  148. package/lib/module/models/StoryBlockConfiguration.js.map +1 -0
  149. package/lib/module/models/VideoPlayerCTADelay.js +2 -0
  150. package/lib/module/models/VideoPlayerCTADelay.js.map +1 -0
  151. package/lib/module/models/VideoPlayerCTAStyle.js +2 -0
  152. package/lib/module/models/VideoPlayerCTAStyle.js.map +1 -0
  153. package/lib/module/models/VideoPlayerCTAWidth.js +2 -0
  154. package/lib/module/models/VideoPlayerCTAWidth.js.map +1 -0
  155. package/lib/module/models/VideoPlayerCompleteAction.js +2 -0
  156. package/lib/module/models/VideoPlayerCompleteAction.js.map +1 -0
  157. package/lib/module/models/VideoPlayerStyle.js +2 -0
  158. package/lib/module/models/VideoPlayerStyle.js.map +1 -0
  159. package/lib/module/modules/LiveStreamModule.js.map +1 -1
  160. package/lib/module/modules/ShoppingModule.js.map +1 -1
  161. package/lib/module/utils/FWGlobalState.js +39 -0
  162. package/lib/module/utils/FWGlobalState.js.map +1 -0
  163. package/lib/typescript/FireworkSDK.d.ts +7 -7
  164. package/lib/typescript/LiveStream.d.ts +2 -2
  165. package/lib/typescript/VideoShopping.d.ts +17 -18
  166. package/lib/typescript/components/StoryBlock.d.ts +2 -0
  167. package/lib/typescript/components/VideoFeed.d.ts +7 -3
  168. package/lib/typescript/index.d.ts +10 -3
  169. package/lib/typescript/models/AdBadgeConfiguration.d.ts +9 -2
  170. package/lib/typescript/models/FWEvents.d.ts +9 -9
  171. package/lib/typescript/models/GradientDrawable.d.ts +5 -0
  172. package/lib/typescript/models/IOSFontInfo.d.ts +2 -0
  173. package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +1 -1
  174. package/lib/typescript/models/StoryBlockConfiguration.d.ts +37 -0
  175. package/lib/typescript/models/VideoFeedConfiguration.d.ts +25 -4
  176. package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -0
  177. package/lib/typescript/models/VideoPlayerCTADelay.d.ts +11 -0
  178. package/lib/typescript/models/VideoPlayerCTAStyle.d.ts +21 -0
  179. package/lib/typescript/models/VideoPlayerCTAWidth.d.ts +1 -0
  180. package/lib/typescript/models/VideoPlayerCompleteAction.d.ts +1 -0
  181. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +9 -34
  182. package/lib/typescript/models/VideoPlayerStyle.d.ts +1 -0
  183. package/lib/typescript/modules/LiveStreamModule.d.ts +1 -1
  184. package/lib/typescript/modules/ShoppingModule.d.ts +2 -3
  185. package/lib/typescript/utils/FWGlobalState.d.ts +10 -0
  186. package/package.json +5 -3
  187. package/react-native-firework-sdk.podspec +2 -1
  188. package/src/FireworkSDK.ts +47 -19
  189. package/src/LiveStream.ts +4 -2
  190. package/src/VideoShopping.ts +47 -39
  191. package/src/components/StoryBlock.tsx +66 -9
  192. package/src/components/VideoFeed.tsx +147 -23
  193. package/src/index.ts +14 -6
  194. package/src/models/AdBadgeConfiguration.ts +10 -2
  195. package/src/models/FWEvents.ts +11 -11
  196. package/src/models/GradientDrawable.ts +14 -0
  197. package/src/models/IOSFontInfo.ts +2 -0
  198. package/src/models/ProductInfoViewConfiguration.ts +1 -1
  199. package/src/models/StoryBlockConfiguration.ts +38 -0
  200. package/src/models/VideoFeedConfiguration.ts +25 -4
  201. package/src/models/VideoPlaybackDetails.ts +1 -0
  202. package/src/models/VideoPlayerCTADelay.ts +11 -0
  203. package/src/models/VideoPlayerCTAStyle.ts +22 -0
  204. package/src/models/VideoPlayerCTAWidth.ts +1 -0
  205. package/src/models/VideoPlayerCompleteAction.ts +1 -0
  206. package/src/models/VideoPlayerConfiguration.ts +9 -36
  207. package/src/models/VideoPlayerStyle.ts +1 -0
  208. package/src/modules/LiveStreamModule.ts +1 -1
  209. package/src/modules/ShoppingModule.ts +2 -3
  210. package/src/utils/FWGlobalState.ts +31 -0
  211. package/android/publish.gradle +0 -66
  212. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +0 -129
  213. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +0 -90
  214. package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +0 -39
  215. package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +0 -9
  216. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +0 -7
  217. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +0 -10
  218. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedTitlePosition.kt +0 -7
  219. package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +0 -53
  220. package/android/src/main/res/layout/fw_bridge_fragment_container.xml +0 -8
  221. package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +0 -33
  222. 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 android.os.Parcelable
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: String? = null,
10
- ) : Parcelable
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
+ }
@@ -0,0 +1,8 @@
1
+ package com.fireworksdk.bridge.models
2
+
3
+ import com.fireworksdk.bridge.models.enums.FWGradientDrawableOrientation
4
+
5
+ data class FWGradientDrawableModel(
6
+ val orientation: FWGradientDrawableOrientation? = null,
7
+ val colors: List<String>? = null,
8
+ )
@@ -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
+ }
@@ -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
+ }
@@ -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 FWLiveStreamEventDetailsModel(
8
4
  val id: String? = null,
9
- ) : Parcelable
5
+ )
@@ -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
- ) : Parcelable
7
+ )
@@ -1,30 +1,20 @@
1
1
  package com.fireworksdk.bridge.models
2
2
 
3
- import android.os.Parcelable
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
- ) : Parcelable {
8
+ ) {
11
9
 
12
- @Parcelize
13
10
  data class CtaButtonConfiguration(
14
- val text: TextValue? = null,
11
+ val text: FWCtaButtonTextValue? = null,
15
12
  val backgroundColor: String? = null,
16
13
  val textColor: String? = null,
17
14
  val fontSize: Int? = null,
18
- ) : Parcelable {
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
- ) : Parcelable
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 = 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 android.os.Parcelable
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: String? = null,
11
- ) : Parcelable
8
+ val videoLaunchBehavior: FWPlayerLaunchBehavior? = null,
9
+ )
@@ -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
  }
@@ -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 android.os.Parcelable
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: Res? = null,
6
+ val res: FWShoppingCtaResultRes? = null,
9
7
  val tips: String? = null,
10
- ) : Parcelable {
11
-
12
- enum class Res(val rawValue: String) {
13
- Success("success"),
14
- Fail("fail"),
15
- Loading("loading"),
16
- }
17
- }
8
+ )
@@ -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 = 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 android.os.Parcelable
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: String? = null,
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
- ) : Parcelable {
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
- ) : Parcelable
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
- ) : Parcelable
29
+ )
31
30
  }
@@ -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.has(CORNER_RADIUS_KEY)) responseJson.optInt(CORNER_RADIUS_KEY) else null
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.has(GRID_COLUMNS_KEY)) responseJson.optInt(GRID_COLUMNS_KEY) else null
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
- val hidden = titleJson?.optBoolean(HIDDEN_KEY)
65
- val iconWidth = titleJson?.optInt(ICON_WIDTH_KEY)
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,
@@ -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
- ) : Parcelable
13
+ )
@@ -1,19 +1,18 @@
1
1
  package com.fireworksdk.bridge.models
2
2
 
3
- import android.os.Parcelable
4
- import kotlinx.android.parcel.Parcelize
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
- val source: String? = null,
10
- val channel: String? = null,
11
- val playlist: String? = null,
12
- val playlistGroup: String? = null,
13
- val hashtagFilterExpression: String? = null,
14
- val mode: String? = null,
15
- val enablePictureInPicture: Boolean? = null,
16
- val videoFeedConfiguration: FWVideoFeedConfigModel? = null,
17
- val videoPlayerConfiguration: FWVideoPlayerConfigModel? = null,
18
- val dynamicContentParameters: Map<String, List<String>>? = null,
19
- ) : Parcelable
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
+ )