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.
Files changed (224) 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/FireworkVideoUI/Podfile +1 -1
  96. package/ios/FireworkVideoUI/Podfile.lock +4 -4
  97. package/ios/Models/NativeToRN/FireworkEventName.swift +0 -1
  98. package/ios/Models/NativeToRN/FireworkSDK+Json.swift +1 -1
  99. package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +6 -157
  100. package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -21
  101. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
  102. package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +1 -12
  103. package/ios/Modules/LiveStream/LiveStreamModule.m +1 -1
  104. package/ios/Modules/LiveStream/LiveStreamModule.swift +4 -2
  105. package/ios/Modules/Shopping/FWCartViewController.swift +0 -75
  106. package/ios/Modules/Shopping/ShoppingModule.m +1 -3
  107. package/ios/Modules/Shopping/ShoppingModule.swift +12 -47
  108. package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +1 -1
  109. package/lib/commonjs/FireworkSDK.js +31 -15
  110. package/lib/commonjs/FireworkSDK.js.map +1 -1
  111. package/lib/commonjs/LiveStream.js.map +1 -1
  112. package/lib/commonjs/VideoShopping.js +43 -30
  113. package/lib/commonjs/VideoShopping.js.map +1 -1
  114. package/lib/commonjs/components/StoryBlock.js +55 -15
  115. package/lib/commonjs/components/StoryBlock.js.map +1 -1
  116. package/lib/commonjs/components/VideoFeed.js +112 -24
  117. package/lib/commonjs/components/VideoFeed.js.map +1 -1
  118. package/lib/commonjs/index.js.map +1 -1
  119. package/lib/commonjs/models/GradientDrawable.js +2 -0
  120. package/lib/commonjs/models/GradientDrawable.js.map +1 -0
  121. package/lib/commonjs/models/StoryBlockConfiguration.js +6 -0
  122. package/lib/commonjs/models/StoryBlockConfiguration.js.map +1 -0
  123. package/lib/commonjs/models/VideoPlayerCTADelay.js +2 -0
  124. package/lib/commonjs/models/VideoPlayerCTADelay.js.map +1 -0
  125. package/lib/commonjs/models/VideoPlayerCTAStyle.js +6 -0
  126. package/lib/commonjs/models/VideoPlayerCTAStyle.js.map +1 -0
  127. package/lib/commonjs/models/VideoPlayerCTAWidth.js +2 -0
  128. package/lib/commonjs/models/VideoPlayerCTAWidth.js.map +1 -0
  129. package/lib/commonjs/models/VideoPlayerCompleteAction.js +2 -0
  130. package/lib/commonjs/models/VideoPlayerCompleteAction.js.map +1 -0
  131. package/lib/commonjs/models/VideoPlayerStyle.js +2 -0
  132. package/lib/commonjs/models/VideoPlayerStyle.js.map +1 -0
  133. package/lib/commonjs/modules/LiveStreamModule.js.map +1 -1
  134. package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
  135. package/lib/commonjs/utils/FWGlobalState.js +47 -0
  136. package/lib/commonjs/utils/FWGlobalState.js.map +1 -0
  137. package/lib/module/FireworkSDK.js +30 -14
  138. package/lib/module/FireworkSDK.js.map +1 -1
  139. package/lib/module/LiveStream.js.map +1 -1
  140. package/lib/module/VideoShopping.js +43 -29
  141. package/lib/module/VideoShopping.js.map +1 -1
  142. package/lib/module/components/StoryBlock.js +54 -15
  143. package/lib/module/components/StoryBlock.js.map +1 -1
  144. package/lib/module/components/VideoFeed.js +113 -24
  145. package/lib/module/components/VideoFeed.js.map +1 -1
  146. package/lib/module/index.js.map +1 -1
  147. package/lib/module/models/GradientDrawable.js +2 -0
  148. package/lib/module/models/GradientDrawable.js.map +1 -0
  149. package/lib/module/models/StoryBlockConfiguration.js +2 -0
  150. package/lib/module/models/StoryBlockConfiguration.js.map +1 -0
  151. package/lib/module/models/VideoPlayerCTADelay.js +2 -0
  152. package/lib/module/models/VideoPlayerCTADelay.js.map +1 -0
  153. package/lib/module/models/VideoPlayerCTAStyle.js +2 -0
  154. package/lib/module/models/VideoPlayerCTAStyle.js.map +1 -0
  155. package/lib/module/models/VideoPlayerCTAWidth.js +2 -0
  156. package/lib/module/models/VideoPlayerCTAWidth.js.map +1 -0
  157. package/lib/module/models/VideoPlayerCompleteAction.js +2 -0
  158. package/lib/module/models/VideoPlayerCompleteAction.js.map +1 -0
  159. package/lib/module/models/VideoPlayerStyle.js +2 -0
  160. package/lib/module/models/VideoPlayerStyle.js.map +1 -0
  161. package/lib/module/modules/LiveStreamModule.js.map +1 -1
  162. package/lib/module/modules/ShoppingModule.js.map +1 -1
  163. package/lib/module/utils/FWGlobalState.js +39 -0
  164. package/lib/module/utils/FWGlobalState.js.map +1 -0
  165. package/lib/typescript/FireworkSDK.d.ts +7 -7
  166. package/lib/typescript/LiveStream.d.ts +2 -2
  167. package/lib/typescript/VideoShopping.d.ts +17 -18
  168. package/lib/typescript/components/StoryBlock.d.ts +2 -0
  169. package/lib/typescript/components/VideoFeed.d.ts +7 -3
  170. package/lib/typescript/index.d.ts +10 -3
  171. package/lib/typescript/models/AdBadgeConfiguration.d.ts +9 -2
  172. package/lib/typescript/models/FWEvents.d.ts +9 -9
  173. package/lib/typescript/models/GradientDrawable.d.ts +5 -0
  174. package/lib/typescript/models/IOSFontInfo.d.ts +2 -0
  175. package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +1 -1
  176. package/lib/typescript/models/StoryBlockConfiguration.d.ts +37 -0
  177. package/lib/typescript/models/VideoFeedConfiguration.d.ts +25 -4
  178. package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -0
  179. package/lib/typescript/models/VideoPlayerCTADelay.d.ts +11 -0
  180. package/lib/typescript/models/VideoPlayerCTAStyle.d.ts +21 -0
  181. package/lib/typescript/models/VideoPlayerCTAWidth.d.ts +1 -0
  182. package/lib/typescript/models/VideoPlayerCompleteAction.d.ts +1 -0
  183. package/lib/typescript/models/VideoPlayerConfiguration.d.ts +9 -34
  184. package/lib/typescript/models/VideoPlayerStyle.d.ts +1 -0
  185. package/lib/typescript/modules/LiveStreamModule.d.ts +1 -1
  186. package/lib/typescript/modules/ShoppingModule.d.ts +2 -3
  187. package/lib/typescript/utils/FWGlobalState.d.ts +10 -0
  188. package/package.json +5 -3
  189. package/react-native-firework-sdk.podspec +2 -1
  190. package/src/FireworkSDK.ts +47 -19
  191. package/src/LiveStream.ts +4 -2
  192. package/src/VideoShopping.ts +47 -39
  193. package/src/components/StoryBlock.tsx +66 -9
  194. package/src/components/VideoFeed.tsx +147 -23
  195. package/src/index.ts +14 -6
  196. package/src/models/AdBadgeConfiguration.ts +10 -2
  197. package/src/models/FWEvents.ts +11 -11
  198. package/src/models/GradientDrawable.ts +14 -0
  199. package/src/models/IOSFontInfo.ts +2 -0
  200. package/src/models/ProductInfoViewConfiguration.ts +1 -1
  201. package/src/models/StoryBlockConfiguration.ts +38 -0
  202. package/src/models/VideoFeedConfiguration.ts +25 -4
  203. package/src/models/VideoPlaybackDetails.ts +1 -0
  204. package/src/models/VideoPlayerCTADelay.ts +11 -0
  205. package/src/models/VideoPlayerCTAStyle.ts +22 -0
  206. package/src/models/VideoPlayerCTAWidth.ts +1 -0
  207. package/src/models/VideoPlayerCompleteAction.ts +1 -0
  208. package/src/models/VideoPlayerConfiguration.ts +9 -36
  209. package/src/models/VideoPlayerStyle.ts +1 -0
  210. package/src/modules/LiveStreamModule.ts +1 -1
  211. package/src/modules/ShoppingModule.ts +2 -3
  212. package/src/utils/FWGlobalState.ts +31 -0
  213. package/android/publish.gradle +0 -66
  214. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +0 -129
  215. package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +0 -90
  216. package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +0 -39
  217. package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +0 -9
  218. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +0 -7
  219. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +0 -10
  220. package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedTitlePosition.kt +0 -7
  221. package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +0 -53
  222. package/android/src/main/res/layout/fw_bridge_fragment_container.xml +0 -8
  223. package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +0 -33
  224. package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +0 -18
@@ -17,7 +17,7 @@ const ShoppingModule = NativeModules.ShoppingModule
17
17
  );
18
18
 
19
19
  interface IShoppingModule extends NativeModule {
20
- init(): void;
20
+ init(): Promise<any>;
21
21
  updateVideoProducts(products: Product[], callbackId: number | string): void;
22
22
  updateShoppingCTAResult(
23
23
  result: ShoppingCTAResult,
@@ -25,10 +25,9 @@ interface IShoppingModule extends NativeModule {
25
25
  ): void;
26
26
  setCartIconVisible(visible: boolean): void;
27
27
  setCartItemCount(count: number): void;
28
- setCustomClickCartIconEnabled(enabled: boolean): Promise<void>; // Only supported on iOS
29
28
  clearCallbackId(callbackId: number | string, eventName: string): void; // Only supported on iOS
30
29
  setProductInfoViewConfiguration(config: ProductInfoViewConfiguration): void;
31
- setCustomClickLinkButtonEnabled(enabled: boolean): Promise<void>;
30
+ setCustomClickLinkButtonEnabled(enabled: boolean): Promise<any>;
32
31
  }
33
32
 
34
33
  const ShoppingModuleEventEmitter = new NativeEventEmitter(ShoppingModule);
@@ -0,0 +1,31 @@
1
+ class FWGlobalState {
2
+ private static _instance?: FWGlobalState;
3
+ private sdkInitCalledResolveFunc?: () => void;
4
+ sdkInitCalledPromise: Promise<void>;
5
+ sdkInitCalled: boolean = false;
6
+
7
+ static getInstance() {
8
+ if (!FWGlobalState._instance) {
9
+ FWGlobalState._instance = new FWGlobalState();
10
+ }
11
+
12
+ return FWGlobalState._instance!;
13
+ }
14
+
15
+ private constructor() {
16
+ this.sdkInitCalledPromise = new Promise((resolve) => {
17
+ this.sdkInitCalledResolveFunc = resolve;
18
+ });
19
+ }
20
+
21
+ resolveSdkInitCalled() {
22
+ if (this.sdkInitCalledResolveFunc) {
23
+ // only call once
24
+ this.sdkInitCalledResolveFunc();
25
+ this.sdkInitCalledResolveFunc = undefined;
26
+ }
27
+ this.sdkInitCalled = true;
28
+ }
29
+ }
30
+
31
+ export default FWGlobalState;
@@ -1,66 +0,0 @@
1
- // Copyright (C) 2017 The Android Open Source Project
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- //./gradlew publish
16
- apply plugin: 'maven-publish'
17
-
18
- afterEvaluate {
19
- publishing {
20
- repositories {
21
- maven {
22
- url = project.findProperty('mavenRepo') ?: "${buildDir}/repo"
23
- // credentials {
24
- // username = ""
25
- // password = ""
26
- // }
27
- }
28
- }
29
- publications {
30
- release(MavenPublication) {
31
- from components.release
32
- artifact androidSourcesJar
33
- groupId = 'com.github.loopsocial'
34
- artifactId = 'fireworksdk_bridge_rn'
35
- version android.defaultConfig.versionName
36
- pom {
37
- name = 'fireworksdk_bridge_rn'
38
- description = 'The firework bridge library (all modules).'
39
- licenses {
40
- license {
41
- name = 'The Apache Software License, Version 2.0'
42
- url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
43
- distribution = 'repo'
44
- }
45
- }
46
- developers {
47
- developer {
48
- name = 'The Android Open Source Project'
49
- }
50
- }
51
- scm {
52
- connection = 'scm:git:git@github.com:loopsocial/bogano.git'
53
- developerConnection = 'scm:git:git@github.com:loopsocial/bogano.git'
54
- url = 'https://github.com/loopsocial/bogano'
55
- }
56
- }
57
- }
58
- }
59
- }
60
- }
61
- tasks.withType(PublishToMavenRepository) { }
62
-
63
- task androidSourcesJar(type: Jar) {
64
- archiveClassifier.set('sources')
65
- from android.sourceSets.main.java.srcDirs
66
- }
@@ -1,129 +0,0 @@
1
- package com.fireworksdk.bridge.components.videofeed
2
-
3
- import android.os.Bundle
4
- import android.view.LayoutInflater
5
- import android.view.View
6
- import android.view.ViewGroup
7
- import androidx.activity.OnBackPressedCallback
8
- import androidx.fragment.app.Fragment
9
- import com.firework.storyblock.FeedLoadListener
10
- import com.firework.storyblock.FwStoryBlockView
11
- import com.fireworksdk.bridge.databinding.FwBridgeStoryBlockBinding
12
- import com.fireworksdk.bridge.models.FWVideoFeedPropsModel
13
- import com.fireworksdk.bridge.utils.FWConfigUtil
14
-
15
- class StoryBlockFragment : Fragment() {
16
-
17
- private var _binding: FwBridgeStoryBlockBinding? = null
18
- private val binding: FwBridgeStoryBlockBinding get() = _binding!!
19
-
20
- private var feedLoadListener: FeedLoadListener? = null
21
- private var fullScreenStateChangeListener: FwStoryBlockView.OnFullscreenStateChangeListener? = null
22
- private var videoFeedPropsModel: FWVideoFeedPropsModel = FWVideoFeedPropsModel()
23
-
24
- override fun onCreateView(
25
- inflater: LayoutInflater,
26
- container: ViewGroup?,
27
- savedInstanceState: Bundle?,
28
- ): View {
29
- _binding = FwBridgeStoryBlockBinding.inflate(inflater)
30
- return binding.root
31
- }
32
-
33
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
34
- super.onViewCreated(view, savedInstanceState)
35
- afterUpdateTransaction()
36
- // need to call it after init()
37
- binding.storyBlock.setFeedLoadListener(feedLoadListener)
38
- binding.storyBlock.setOnFullscreenStateChangeListener(fullScreenStateChangeListener)
39
- // addBackPressedCallback()
40
- // Handler(Looper.getMainLooper()).postDelayed({
41
- // addBackPressedCallback()
42
- // }, 10000)
43
- }
44
-
45
-
46
- override fun onDestroyView() {
47
- // removeBackPressedCallback()
48
- _binding = null
49
- super.onDestroyView()
50
- }
51
-
52
- private fun afterUpdateTransaction() {
53
- val viewOptionsBuilder = FWConfigUtil.generateViewOptionsBuilder(videoFeedPropsModel)
54
- binding.storyBlock.init(
55
- childFragmentManager,
56
- requireActivity().lifecycle,
57
- viewOptionsBuilder.build(),
58
- binding.storyBlockContainer,
59
- )
60
- }
61
-
62
- fun setProps(props: FWVideoFeedPropsModel?) {
63
- props ?: return
64
- videoFeedPropsModel = props
65
- }
66
-
67
- fun play() {
68
- binding.storyBlock.play()
69
- }
70
-
71
- fun pause() {
72
- binding.storyBlock.pause()
73
- }
74
-
75
- fun toggleFullScreen() {
76
- binding.storyBlock.toggleFullscreen()
77
- }
78
-
79
- fun setFeedLoadListener(feedLoadListener: FeedLoadListener?) {
80
- this.feedLoadListener = feedLoadListener
81
- }
82
-
83
- fun setOnFullScreenStateChangedListener(listener: FwStoryBlockView.OnFullscreenStateChangeListener?) {
84
- this.fullScreenStateChangeListener = listener
85
- }
86
-
87
- fun isFullScreen(): Boolean {
88
- return binding.storyBlock.isFullscreen()
89
- }
90
-
91
- private val mBackPressedCallback: OnBackPressedCallback by lazy {
92
- object : OnBackPressedCallback(true) {
93
- override fun handleOnBackPressed() {
94
- if (binding.storyBlock.isFullscreen()) {
95
- binding.storyBlock.toggleFullscreen()
96
- } else {
97
- isEnabled = false
98
- requireActivity().onBackPressed()
99
- }
100
- }
101
- }
102
- }
103
-
104
- private fun addBackPressedCallback() {
105
- requireActivity()
106
- .onBackPressedDispatcher
107
- .addCallback(
108
- viewLifecycleOwner,
109
- mBackPressedCallback
110
- )
111
- }
112
-
113
- private fun removeBackPressedCallback() {
114
- mBackPressedCallback.remove()
115
- }
116
-
117
- override fun onPause() {
118
- super.onPause()
119
- }
120
-
121
- override fun onResume() {
122
- super.onResume()
123
- }
124
-
125
- override fun onDestroy() {
126
- super.onDestroy()
127
- }
128
-
129
- }
@@ -1,90 +0,0 @@
1
- package com.fireworksdk.bridge.components.videofeed
2
-
3
- import android.content.Context
4
- import android.util.AttributeSet
5
- import android.widget.FrameLayout
6
- import com.fireworksdk.bridge.models.*
7
-
8
- class StoryBlockFrameLayout(
9
- context: Context,
10
- attrs: AttributeSet?
11
- ) : FrameLayout(context, attrs) {
12
-
13
- constructor(context: Context) : this(context, null)
14
-
15
- private var videoFeedPropsModel: FWVideoFeedPropsModel = FWVideoFeedPropsModel()
16
- private var storyBlockFragment by weakProperty<StoryBlockFragment?>()
17
-
18
- fun setSource(source: String?) {
19
- videoFeedPropsModel = videoFeedPropsModel.copy(
20
- source = source
21
- )
22
- }
23
-
24
- fun setChannel(channel: String?) {
25
- videoFeedPropsModel = videoFeedPropsModel.copy(
26
- channel = channel
27
- )
28
- }
29
-
30
- fun setPlaylist(playlist: String?) {
31
- videoFeedPropsModel = videoFeedPropsModel.copy(
32
- playlist = playlist
33
- )
34
- }
35
-
36
- fun setHashtagFilterExpressionProps(hashtagFilterExpression: String?) {
37
- videoFeedPropsModel = videoFeedPropsModel.copy(
38
- hashtagFilterExpression = hashtagFilterExpression
39
- )
40
- }
41
-
42
- fun setDynamicContentParameters(parametersMap: HashMap<String, List<String>>?) {
43
- videoFeedPropsModel = videoFeedPropsModel.copy(
44
- dynamicContentParameters = parametersMap
45
- )
46
- }
47
-
48
- fun setEnablePictureInPicture(enablePictureInPicture: Boolean?) {
49
- videoFeedPropsModel = videoFeedPropsModel.copy(
50
- enablePictureInPicture = enablePictureInPicture
51
- )
52
- }
53
-
54
- fun setVideoFeedConfig(config: FWVideoFeedConfigModel?) {
55
- videoFeedPropsModel = videoFeedPropsModel.copy(
56
- videoFeedConfiguration = config
57
- )
58
- }
59
-
60
- fun setVideoPlayerConfig(config: FWVideoPlayerConfigModel?) {
61
- videoFeedPropsModel = videoFeedPropsModel.copy(
62
- videoPlayerConfiguration = config
63
- )
64
- }
65
-
66
- fun setFragment(fragment: StoryBlockFragment) {
67
- this.storyBlockFragment = fragment
68
- fragment.setProps(videoFeedPropsModel)
69
- }
70
-
71
- fun getFragment(): StoryBlockFragment? {
72
- return storyBlockFragment
73
- }
74
-
75
- fun play() {
76
- storyBlockFragment?.play()
77
- }
78
-
79
- fun pause() {
80
- storyBlockFragment?.pause()
81
- }
82
-
83
- fun toggleFullScreen() {
84
- storyBlockFragment?.toggleFullScreen()
85
- }
86
-
87
- fun destroy() {
88
- storyBlockFragment = null
89
- }
90
- }
@@ -1,39 +0,0 @@
1
- package com.fireworksdk.bridge.constants
2
-
3
- object FWVideoPlayerConstant {
4
-
5
- /**
6
- * When advanceToNext, player will play the next video,
7
- * When the current video finishes playing.
8
- * When loop, playing video will loop until user explicitly
9
- * swipes away
10
- * Default value is advanceToNext.
11
- */
12
- const val FW_VIDEO_COMPLETE_ACTION_LOOP = "loop"
13
- const val FW_VIDEO_COMPLETE_ACTION_ADVANCE_TO_NEXT = "advanceToNext"
14
-
15
- /**
16
- * launch video player in full bleed ( full screen ) mode or fit bleed mode
17
- */
18
- const val FW_PLAYER_STYLE_FULL = "full"
19
- const val FW_PLAYER_STYLE_FIT = "fit"
20
-
21
- /**
22
- * Ad label
23
- */
24
- const val FW_AD_BADGE_LABEL_AD = "ad"
25
- const val FW_AD_BADGE_LABEL_SPONSORED = "sponsored"
26
-
27
- /**
28
- * mute or default when open player
29
- */
30
- const val FW_PLAYER_LAUNCH_BEHAVIOR_DEFAULT = "default"
31
- const val FW_PLAYER_LAUNCH_BEHAVIOR_MUTE_ON_FIRST_LAUNCH = "muteOnFirstLaunch"
32
-
33
- /**
34
- * cta delay type
35
- */
36
- const val FW_CTA_DELAY_TYPE_CONSTANT = "constant"
37
- const val FW_CTA_DELAY_TYPE_PERCENTAGE = "percentage"
38
-
39
- }
@@ -1,9 +0,0 @@
1
- package com.fireworksdk.bridge.models
2
-
3
- enum class FWSystemTypeface(val rawValue: String) {
4
- Default("DEFAULT"),
5
- DefaultBold("DEFAULT_BOLD"),
6
- SansSerif("SANS_SERIF"),
7
- Serif("SERIF"),
8
- Monospace("MONOSPACE"),
9
- }
@@ -1,7 +0,0 @@
1
- package com.fireworksdk.bridge.models
2
-
3
- enum class FWVideoFeedModel(val rawValue: String) {
4
- Row("row"),
5
- Column("column"),
6
- Grid("grid"),
7
- }
@@ -1,10 +0,0 @@
1
- package com.fireworksdk.bridge.models
2
-
3
- enum class FWVideoFeedSource(val rawValue: String) {
4
- Discover("discover"),
5
- Channel("channel"),
6
- Playlist("playlist"),
7
- DynamicContent("dynamicContent"),
8
- PlaylistGroup("playlistGroup"),
9
- HashtagPlaylist("hashtagPlaylist"),
10
- }
@@ -1,7 +0,0 @@
1
- package com.fireworksdk.bridge.models
2
-
3
- enum class FWVideoFeedTitlePosition(val intValue: Int, val rawValue: String) {
4
- Nested(1, "nested"),
5
- Stacked(2, "stacked"),
6
- }
7
-
@@ -1,53 +0,0 @@
1
- package com.fireworksdk.bridge.reactnative.pages
2
-
3
- import android.app.Activity
4
- import android.content.Intent
5
- import android.os.Bundle
6
- import androidx.appcompat.app.AppCompatActivity
7
- import androidx.fragment.app.Fragment
8
- import com.facebook.react.ReactFragment
9
- import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler
10
- import com.fireworksdk.bridge.R
11
- import com.fireworksdk.bridge.utils.FWBundleUtils
12
-
13
-
14
- class FWContainerActivity : AppCompatActivity(), DefaultHardwareBackBtnHandler {
15
-
16
- override fun onCreate(savedInstanceState: Bundle?) {
17
- super.onCreate(savedInstanceState)
18
- setContentView(R.layout.fw_bridge_fragment_container)
19
-
20
- val componentName = intent.getStringExtra(KEY_COMPONENT_NAME)
21
- val params = intent.getSerializableExtra(KEY_PARAMS) as HashMap<String, Any?>?
22
-
23
- val reactNativeFragment: Fragment = ReactFragment.Builder()
24
- .setComponentName(componentName)
25
- // https://github.com/facebook/react-native/issues/16026
26
- .setLaunchOptions(FWBundleUtils.mapToBundle(params))
27
- .build()
28
-
29
- supportFragmentManager
30
- .beginTransaction()
31
- .add(R.id.fw_bridge_container, reactNativeFragment)
32
- .commit()
33
- }
34
-
35
- companion object {
36
-
37
- private const val KEY_PARAMS = "params"
38
- private const val KEY_COMPONENT_NAME = "componentName"
39
-
40
- fun createIntent(activity: Activity, componentName: String?, params: HashMap<String, Any?>?): Intent {
41
- val intent = Intent(activity, FWContainerActivity::class.java)
42
- intent.putExtra(KEY_COMPONENT_NAME, componentName)
43
- intent.putExtra(KEY_PARAMS, params)
44
- intent.flags = Intent.FLAG_ACTIVITY_NO_ANIMATION
45
- activity.overridePendingTransition(0, 0)
46
- return intent
47
- }
48
- }
49
-
50
- override fun invokeDefaultOnBackPressed() {
51
- super.onBackPressed();
52
- }
53
- }
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <FrameLayout
3
- xmlns:android="http://schemas.android.com/apk/res/android"
4
- android:id="@+id/fw_bridge_container"
5
- android:layout_width="match_parent"
6
- android:layout_height="match_parent">
7
-
8
- </FrameLayout>
@@ -1,33 +0,0 @@
1
- //
2
- // FWNavigatorContainerViewController.swift
3
- // react-native-firework-sdk
4
- //
5
- // Created by Big Bear Xiong on 2022/4/22.
6
- //
7
-
8
- import UIKit
9
-
10
- class FWNavigatorContainerViewController: UIViewController {
11
- var moduleName: String = ""
12
- var properties: [String: Any] = [:]
13
-
14
- override func viewDidLoad() {
15
- super.viewDidLoad()
16
- loadContent()
17
- }
18
-
19
- private func loadContent() {
20
- let rctRootView = RCTRootView.init(
21
- bridge: RCTBridge.current(), moduleName: moduleName, initialProperties: properties)
22
- view.addSubview(rctRootView)
23
- rctRootView.translatesAutoresizingMaskIntoConstraints = false
24
-
25
- NSLayoutConstraint.activate([
26
- rctRootView.leftAnchor.constraint(equalTo: view.leftAnchor),
27
- rctRootView.topAnchor.constraint(equalTo: view.topAnchor),
28
- rctRootView.rightAnchor.constraint(equalTo: view.rightAnchor),
29
- rctRootView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
30
- ])
31
- }
32
-
33
- }
@@ -1,18 +0,0 @@
1
- //
2
- // FWNavigatorProtocol.swift
3
- // react-native-firework-sdk
4
- //
5
- // Created by Big Bear Xiong on 2022/4/21.
6
- //
7
-
8
- import Foundation
9
-
10
- protocol FWNavigator {
11
- func pushNativeContainer(
12
- _ props: NSDictionary?, resolver: @escaping RCTPromiseResolveBlock,
13
- rejecter: @escaping RCTPromiseRejectBlock)
14
- func popNativeContainer(
15
- _ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock)
16
- func canPopNativeContainer(
17
- _ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock)
18
- }