react-native-firework-sdk 2.2.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.abi.json +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.abi.json +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +9 -9
- package/android/build.gradle +9 -39
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradle.properties +7 -5
- package/android/proguard-rules.pro +5 -26
- package/android/src/main/AndroidManifest.xml +0 -3
- package/android/src/main/java/com/fireworksdk/bridge/FireworkSDKPackage.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/base/FWBaseFragment.kt +10 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +157 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFrameLayout.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +15 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +6 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +5 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelSerializer.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelDeserializer.kt +35 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelSerializer.kt +27 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +5 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +2 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationSerializer.kt +42 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt +20 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +3 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +2 -13
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +8 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +17 -6
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelSerializer.kt +59 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +14 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +14 -4
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelSerializer.kt +56 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +11 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +11 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +11 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +63 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProduct.kt +4 -11
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductSerializer.kt +82 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWBadgeTextType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaButtonTextValue.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaDelayType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/{FWEventName.kt → enums/FWEventName.kt} +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWGradientDrawableOrientation.kt +24 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerLaunchBehavior.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerStyle.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWShoppingCtaResultRes.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWSystemTypeface.kt +21 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoCompleteAction.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedMode.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedSource.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedTitlePosition.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoPlayerCTAWidth.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWReactNativeSDK.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +61 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +3 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +0 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +0 -6
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +25 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +24 -47
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +17 -44
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWBundleUtils.kt +46 -21
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +165 -86
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWFragmentUtil.kt +51 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +77 -80
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLiveStreamUtil.kt +17 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWSingletonHolder.kt +25 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWStatusBarUtil.kt +28 -0
- package/android/src/main/res/layout/fw_bridge_story_block.xml +5 -12
- package/ios/Components/VideoFeed.swift +39 -19
- package/ios/Components/VideoFeedConfiguration.swift +4 -5
- package/ios/Components/VideoFeedManager.swift +1 -1
- package/ios/Components/VideoPlayerConfiguration.swift +17 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +197 -205
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +23 -8
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +1 -18
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +4 -1
- package/ios/Models/NativeToRN/FireworkEventName.swift +0 -1
- package/ios/Models/NativeToRN/FireworkSDK+Json.swift +1 -1
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +6 -157
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -21
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +1 -12
- package/ios/Modules/LiveStream/LiveStreamModule.m +1 -1
- package/ios/Modules/LiveStream/LiveStreamModule.swift +4 -2
- package/ios/Modules/Shopping/FWCartViewController.swift +0 -75
- package/ios/Modules/Shopping/ShoppingModule.m +1 -3
- package/ios/Modules/Shopping/ShoppingModule.swift +12 -47
- package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +1 -1
- package/lib/commonjs/FireworkSDK.js +31 -15
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +43 -30
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +124 -82
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +112 -24
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/GradientDrawable.js +2 -0
- package/lib/commonjs/models/GradientDrawable.js.map +1 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js +6 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js +6 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerStyle.js +2 -0
- package/lib/commonjs/models/VideoPlayerStyle.js.map +1 -0
- package/lib/commonjs/modules/LiveStreamModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/commonjs/utils/FWGlobalState.js +47 -0
- package/lib/commonjs/utils/FWGlobalState.js.map +1 -0
- package/lib/module/FireworkSDK.js +30 -14
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js.map +1 -1
- package/lib/module/VideoShopping.js +43 -29
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +113 -73
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +113 -24
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/GradientDrawable.js +2 -0
- package/lib/module/models/GradientDrawable.js.map +1 -0
- package/lib/module/models/StoryBlockConfiguration.js +2 -0
- package/lib/module/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/module/models/VideoPlayerCTADelay.js +2 -0
- package/lib/module/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAStyle.js +2 -0
- package/lib/module/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/module/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/module/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/module/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/module/models/VideoPlayerStyle.js +2 -0
- package/lib/module/models/VideoPlayerStyle.js.map +1 -0
- package/lib/module/modules/LiveStreamModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/module/utils/FWGlobalState.js +39 -0
- package/lib/module/utils/FWGlobalState.js.map +1 -0
- package/lib/typescript/FireworkSDK.d.ts +7 -7
- package/lib/typescript/LiveStream.d.ts +2 -2
- package/lib/typescript/VideoShopping.d.ts +17 -18
- package/lib/typescript/components/StoryBlock.d.ts +2 -0
- package/lib/typescript/components/VideoFeed.d.ts +7 -3
- package/lib/typescript/index.d.ts +10 -3
- package/lib/typescript/models/AdBadgeConfiguration.d.ts +9 -2
- package/lib/typescript/models/FWEvents.d.ts +9 -9
- package/lib/typescript/models/GradientDrawable.d.ts +5 -0
- package/lib/typescript/models/IOSFontInfo.d.ts +2 -0
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +1 -1
- package/lib/typescript/models/StoryBlockConfiguration.d.ts +37 -0
- package/lib/typescript/models/VideoFeedConfiguration.d.ts +25 -4
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCTADelay.d.ts +11 -0
- package/lib/typescript/models/VideoPlayerCTAStyle.d.ts +21 -0
- package/lib/typescript/models/VideoPlayerCTAWidth.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCompleteAction.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +9 -34
- package/lib/typescript/models/VideoPlayerStyle.d.ts +1 -0
- package/lib/typescript/modules/LiveStreamModule.d.ts +1 -1
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -3
- package/lib/typescript/utils/FWGlobalState.d.ts +10 -0
- package/package.json +5 -3
- package/react-native-firework-sdk.podspec +2 -1
- package/src/FireworkSDK.ts +47 -19
- package/src/LiveStream.ts +4 -2
- package/src/VideoShopping.ts +47 -39
- package/src/components/StoryBlock.tsx +161 -98
- package/src/components/VideoFeed.tsx +147 -23
- package/src/index.ts +14 -6
- package/src/models/AdBadgeConfiguration.ts +10 -2
- package/src/models/FWEvents.ts +11 -11
- package/src/models/GradientDrawable.ts +14 -0
- package/src/models/IOSFontInfo.ts +2 -0
- package/src/models/ProductInfoViewConfiguration.ts +1 -1
- package/src/models/StoryBlockConfiguration.ts +38 -0
- package/src/models/VideoFeedConfiguration.ts +25 -4
- package/src/models/VideoPlaybackDetails.ts +1 -0
- package/src/models/VideoPlayerCTADelay.ts +11 -0
- package/src/models/VideoPlayerCTAStyle.ts +22 -0
- package/src/models/VideoPlayerCTAWidth.ts +1 -0
- package/src/models/VideoPlayerCompleteAction.ts +1 -0
- package/src/models/VideoPlayerConfiguration.ts +9 -36
- package/src/models/VideoPlayerStyle.ts +1 -0
- package/src/modules/LiveStreamModule.ts +1 -1
- package/src/modules/ShoppingModule.ts +2 -3
- package/src/utils/FWGlobalState.ts +31 -0
- package/android/publish.gradle +0 -66
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +0 -129
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +0 -90
- package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +0 -39
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +0 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +0 -10
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedTitlePosition.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +0 -53
- package/android/src/main/res/layout/fw_bridge_fragment_container.xml +0 -8
- package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +0 -33
- package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +0 -18
|
@@ -17,7 +17,7 @@ const ShoppingModule = NativeModules.ShoppingModule
|
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
interface IShoppingModule extends NativeModule {
|
|
20
|
-
init():
|
|
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<
|
|
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;
|
package/android/publish.gradle
DELETED
|
@@ -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
|
-
}
|
package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt
DELETED
|
@@ -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
|
-
}
|
package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt
DELETED
|
@@ -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,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
|
-
}
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt
DELETED
|
@@ -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,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
|
-
}
|