react-native-firework-sdk 2.0.0 → 2.1.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/android/build.gradle +5 -3
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +129 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +84 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWEventName.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +18 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +33 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +17 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +33 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +126 -45
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +6 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +9 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +81 -50
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +9 -2
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +4 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +48 -16
- package/android/src/main/res/layout/fw_bridge_story_block.xml +24 -0
- package/ios/Components/StoryBlock.swift +33 -2
- package/ios/Components/StoryBlockManager.m +32 -0
- package/ios/Components/VideoFeed.swift +9 -29
- package/ios/Components/VideoFeedManager.m +11 -6
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +378 -104
- package/ios/Models/NativeToRN/FireworkEventName.swift +3 -1
- package/ios/Models/RNToNative/RCTConvert+Shopping.swift +21 -0
- package/ios/Models/RNToNative/RCTConvert+VideoFeed.swift +27 -0
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +5 -1
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +30 -0
- package/ios/Modules/Shopping/ProductInfoViewConfiguration.swift +13 -0
- package/ios/Modules/Shopping/ShoppingCTAResult.swift +16 -0
- package/ios/Modules/Shopping/ShoppingModule.m +2 -1
- package/ios/Modules/Shopping/ShoppingModule.swift +106 -30
- package/ios/Support/MultiHostStreaming/FWMultiHostStreaming.podspec +24 -0
- package/ios/Support/MultiHostStreaming/src/MultiHostStreamingSDK.swift +17 -0
- package/ios/Utils/AppLanguage/Bundle+FWSwizzle.swift +58 -0
- package/ios/Utils/AppLanguage/FWAppLanguageManager.swift +139 -0
- package/ios/Utils/AppLanguage/FWLanguageUtil.swift +43 -0
- package/ios/Utils/AppLanguage/NumberFormatter+FWSwizzle.swift +25 -0
- package/ios/Utils/AppLanguage/UIImageView+FWSwizzle.swift +91 -0
- package/ios/Utils/AppLanguage/UILabel+FWSwizzle.swift +98 -0
- package/ios/Utils/AppLanguage/UITextField+FWSwizzle.swift +97 -0
- package/ios/Utils/AppLanguage/UITextView+FWSwizzle.swift +97 -0
- package/ios/Utils/AppLanguage/UIView+FWSwizzle.swift +38 -0
- package/ios/Utils/AppLanguage/UIViewController+FWSwizzle.swift +32 -0
- package/ios/Utils/AppLanguage/UIWindow+FWSwizzle.swift +26 -0
- package/ios/Utils/AppLanguage/URLSession+FWSwizzle.swift +69 -0
- package/ios/Utils/{DispatchQueue+FWOnce.swift → Extensions/DispatchQueue+FWOnce.swift} +3 -3
- package/ios/Utils/{UINavigationController+FWSwizzle.swift → Extensions/Swizzle/UINavigationController+FWSwizzle.swift} +6 -8
- package/ios/Utils/Extensions/UIView+FWUIHierarchy.swift +47 -0
- package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.h +25 -0
- package/ios/Utils/FWRTL/Classes/Manager/FWRTLManager.m +75 -0
- package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.h +21 -0
- package/ios/Utils/FWRTL/Classes/UICategories/CALayer+FWRTL.m +124 -0
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.h +11 -0
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLRemoteViewControllerAdaptor.m +86 -0
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.h +16 -0
- package/ios/Utils/FWRTL/Classes/UICategories/FWRTLWhiteListManager.m +55 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.h +18 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UILabel+FWRTL.m +39 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.h +54 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UIView+FWRTL.m +141 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.h +16 -0
- package/ios/Utils/FWRTL/Classes/UICategories/UIWindow+FWRTL.m +20 -0
- package/ios/Utils/FWRTL/Classes/Utils/FWRTLDefinitions.h +52 -0
- package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.h +19 -0
- package/ios/Utils/FWRTL/Classes/Utils/NSObject+FWRTLReloadBlock.m +49 -0
- package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.h +21 -0
- package/ios/Utils/FWRTL/Classes/Utils/NSString+FWRTL.m +38 -0
- package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.h +18 -0
- package/ios/Utils/FWRTL/Classes/Utils/UIImage+FWRTL.m +43 -0
- package/ios/Utils/FWSwizzleLoader.m +6 -1
- package/ios/Utils/FWSwizzleLoader.swift +13 -0
- package/ios/Utils/FWSwizzleUtil.swift +17 -9
- package/ios/react_native_firework_sdk.h +1 -0
- package/ios/scripts/react_native_firework_sdk_pods.rb +31 -0
- package/lib/commonjs/FireworkSDK.js +21 -4
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +20 -37
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +190 -125
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +11 -1
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/FWEventName.js +2 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -1
- package/lib/commonjs/models/ShoppingCTAResult.js +2 -0
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/module/FireworkSDK.js +21 -4
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/VideoShopping.js +20 -39
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +179 -131
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +10 -1
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/FWEventName.js +2 -0
- package/lib/module/models/FWEventName.js.map +1 -1
- package/lib/module/models/ShoppingCTAResult.js +2 -0
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/typescript/FireworkSDK.d.ts +7 -4
- package/lib/typescript/VideoShopping.d.ts +9 -11
- package/lib/typescript/components/StoryBlock.d.ts +19 -25
- package/lib/typescript/index.d.ts +6 -6
- package/lib/typescript/models/FWEventName.d.ts +2 -0
- package/lib/typescript/models/FWEvents.d.ts +14 -1
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +36 -1
- package/lib/typescript/models/ShoppingCTAResult.d.ts +11 -0
- package/lib/typescript/modules/FireworkSDKModule.d.ts +1 -2
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -1
- package/package.json +2 -2
- package/react-native-firework-sdk.podspec +26 -24
- package/src/FireworkSDK.ts +18 -5
- package/src/VideoShopping.ts +40 -53
- package/src/components/StoryBlock.tsx +199 -96
- package/src/components/VideoFeed.tsx +11 -0
- package/src/index.ts +15 -7
- package/src/models/FWEventName.ts +2 -0
- package/src/models/FWEvents.ts +14 -1
- package/src/models/ProductInfoViewConfiguration.ts +38 -1
- package/src/models/ShoppingCTAResult.ts +11 -0
- package/src/modules/FireworkSDKModule.ts +1 -2
- package/src/modules/ShoppingModule.ts +5 -5
- package/android/src/main/java/com/fireworksdk/bridge/constants/FWCommandConstant.kt +0 -6
- package/ios/Utils/UIView+ParentViewController.swift +0 -21
- package/lib/commonjs/models/AddToCartResult.js +0 -2
- package/lib/module/models/AddToCartResult.js +0 -2
- package/lib/typescript/models/AddToCartResult.d.ts +0 -10
- package/src/models/AddToCartResult.ts +0 -10
- /package/ios/Utils/{String+Color.swift → Extensions/String+Color.swift} +0 -0
- /package/ios/Utils/{UIView+Constraints.swift → Extensions/UIView+Constraints.swift} +0 -0
- /package/ios/Utils/{UIViewController+AttachChild.swift → Extensions/UIViewController+AttachChild.swift} +0 -0
- /package/lib/commonjs/models/{AddToCartResult.js.map → ShoppingCTAResult.js.map} +0 -0
- /package/lib/module/models/{AddToCartResult.js.map → ShoppingCTAResult.js.map} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
//
|
|
2
|
+
// UIView+FWRTL.m
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by ByteDance on 2018/9/10.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "UIView+FWRTL.h"
|
|
9
|
+
#import "CALayer+FWRTL.h"
|
|
10
|
+
#import <objc/runtime.h>
|
|
11
|
+
#import "FWRTLDefinitions.h"
|
|
12
|
+
#import "FWRTLManager.h"
|
|
13
|
+
|
|
14
|
+
@interface UIView ()
|
|
15
|
+
|
|
16
|
+
@property (nonatomic, assign) FWRTLViewType fwrtl_lastType;
|
|
17
|
+
@property (nonatomic, assign) FWRTLViewType fwrtl_calculatedViewType;
|
|
18
|
+
|
|
19
|
+
@end
|
|
20
|
+
|
|
21
|
+
@implementation UIView (FWRTL)
|
|
22
|
+
|
|
23
|
+
#pragma mark - Swizzle
|
|
24
|
+
+ (void)load
|
|
25
|
+
{
|
|
26
|
+
FWSwizzle(self, didMoveToSuperview, fwrtl_didMoveToSuperview);
|
|
27
|
+
FWSwizzle(self, didMoveToWindow, fwrtl_didMoveToWindow);
|
|
28
|
+
FWSwizzle(self, snapshotViewAfterScreenUpdates:, fwrtl_snapshotViewAfterScreenUpdates:);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
- (void)fwrtl_didMoveToSuperview
|
|
32
|
+
{
|
|
33
|
+
[self fwrtl_didMoveToSuperview];
|
|
34
|
+
[self fwrtl_renewLayerTransformForceRecursively:NO];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
- (void)fwrtl_didMoveToWindow
|
|
38
|
+
{
|
|
39
|
+
[self fwrtl_didMoveToWindow];
|
|
40
|
+
[self fwrtl_renewLayerTransformForceRecursively:NO];
|
|
41
|
+
[[FWRTLManager sharedInstance] registerUIElement:self];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (UIView *)fwrtl_snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
|
|
45
|
+
{
|
|
46
|
+
UIView *res = [self fwrtl_snapshotViewAfterScreenUpdates:afterUpdates];
|
|
47
|
+
res.fwrtl_viewType = self.fwrtl_calculatedViewType;
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
#pragma mark - Additional Properties
|
|
53
|
+
- (void)setFwrtl_viewType:(FWRTLViewType)fwrtl_viewType
|
|
54
|
+
{
|
|
55
|
+
if (self.fwrtl_viewType == fwrtl_viewType) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
objc_setAssociatedObject(self, @selector(fwrtl_viewType), @(fwrtl_viewType), OBJC_ASSOCIATION_RETAIN);
|
|
59
|
+
[self fwrtl_renewLayerTransformForceRecursively:NO];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
- (FWRTLViewType)fwrtl_viewType
|
|
63
|
+
{
|
|
64
|
+
return [objc_getAssociatedObject(self, _cmd) integerValue];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (void)setFwrtl_lastType:(FWRTLViewType)fwrtl_lastType
|
|
68
|
+
{
|
|
69
|
+
objc_setAssociatedObject(self, @selector(fwrtl_lastType), @(fwrtl_lastType), OBJC_ASSOCIATION_RETAIN);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- (FWRTLViewType)fwrtl_lastType
|
|
73
|
+
{
|
|
74
|
+
return [objc_getAssociatedObject(self, _cmd) integerValue];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
- (void)setFwrtl_calculatedViewType:(FWRTLViewType)fwrtl_calculatedViewType
|
|
78
|
+
{
|
|
79
|
+
objc_setAssociatedObject(self, @selector(fwrtl_calculatedViewType), @(fwrtl_calculatedViewType), OBJC_ASSOCIATION_RETAIN);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
- (FWRTLViewType)fwrtl_calculatedViewType
|
|
83
|
+
{
|
|
84
|
+
FWRTLViewType type = [objc_getAssociatedObject(self, _cmd) integerValue];
|
|
85
|
+
if (type == FWRTLViewTypeAuto) {
|
|
86
|
+
if (self.window) {
|
|
87
|
+
[self fwrtl_updateCalculatedViewType];
|
|
88
|
+
type = [objc_getAssociatedObject(self, _cmd) integerValue];
|
|
89
|
+
} else {
|
|
90
|
+
type = FWRTLViewTypeNormal;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return type;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
#pragma mark - RTL
|
|
97
|
+
- (void)fwrtl_renewLayerTransformForceRecursively:(BOOL)forceRecursively
|
|
98
|
+
{
|
|
99
|
+
[self fwrtl_updateCalculatedViewType];
|
|
100
|
+
FWRTLViewType updatedViewType = [self fwrtl_calculatedViewType];
|
|
101
|
+
FWRTLViewType superViewCalculatedViewType = [self.superview fwrtl_calculatedViewType];
|
|
102
|
+
BOOL shouldFlipCurrentView = updatedViewType == FWRTLViewTypeFlip || updatedViewType == FWRTLViewTypeFlipWithAllDescendants;
|
|
103
|
+
BOOL shouldFlipSuperview = superViewCalculatedViewType == FWRTLViewTypeFlip || superViewCalculatedViewType == FWRTLViewTypeFlipWithAllDescendants;
|
|
104
|
+
BOOL shouldSetFlipTransform = shouldFlipSuperview ^ shouldFlipCurrentView;
|
|
105
|
+
if (shouldSetFlipTransform && [FWRTLManager sharedInstance].enableHorizontalFlip) {
|
|
106
|
+
self.layer.fwrtl_basicTransform = CGAffineTransformMakeScale(-1, 1);
|
|
107
|
+
} else {
|
|
108
|
+
self.layer.fwrtl_basicTransform = CGAffineTransformIdentity;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (updatedViewType != self.fwrtl_lastType || forceRecursively) {
|
|
112
|
+
[self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
113
|
+
[obj fwrtl_renewLayerTransformForceRecursively:forceRecursively];
|
|
114
|
+
}];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
self.fwrtl_lastType = updatedViewType;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
- (void)fwrtl_updateCalculatedViewType
|
|
121
|
+
{
|
|
122
|
+
FWRTLViewType rtlType = [self fwrtl_viewType];
|
|
123
|
+
if (rtlType == FWRTLViewTypeAuto) {
|
|
124
|
+
rtlType = [self fwrtl_automaticViewType];
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
FWRTLViewType superViewCalculatedType = self.superview.fwrtl_calculatedViewType;
|
|
128
|
+
if (superViewCalculatedType == FWRTLViewTypeFlipWithAllDescendants || superViewCalculatedType == FWRTLViewTypeNormalWithAllDescendants || rtlType == FWRTLViewTypeInherit) {
|
|
129
|
+
self.fwrtl_calculatedViewType = self.superview.fwrtl_calculatedViewType;
|
|
130
|
+
} else {
|
|
131
|
+
self.fwrtl_calculatedViewType = rtlType;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
#pragma mark - For Inherit
|
|
136
|
+
- (FWRTLViewType)fwrtl_automaticViewType
|
|
137
|
+
{
|
|
138
|
+
return self.superview ? FWRTLViewTypeInherit : FWRTLViewTypeNormal;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//
|
|
2
|
+
// UIWindow+FWRTL.m
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by ByteDance on 2018/9/10.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "UIWindow+FWRTL.h"
|
|
9
|
+
#import "UIView+FWRTL.h"
|
|
10
|
+
#import "FWRTLDefinitions.h"
|
|
11
|
+
#import "FWRTLManager.h"
|
|
12
|
+
|
|
13
|
+
@implementation UIWindow (FWRTL)
|
|
14
|
+
|
|
15
|
+
- (FWRTLViewType)fwrtl_automaticViewType
|
|
16
|
+
{
|
|
17
|
+
return FWRTLViewTypeNormal;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FWRTLDefinitions.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by 熊典 on 2018/10/9.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef FWRTLDefinitions_h
|
|
9
|
+
#define FWRTLDefinitions_h
|
|
10
|
+
|
|
11
|
+
#import <objc/runtime.h>
|
|
12
|
+
|
|
13
|
+
#ifndef btd_keywordify
|
|
14
|
+
#if DEBUG
|
|
15
|
+
#define btd_keywordify autoreleasepool {}
|
|
16
|
+
#else
|
|
17
|
+
#define btd_keywordify try {} @catch (...) {}
|
|
18
|
+
#endif
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#ifndef weakify
|
|
22
|
+
#if __has_feature(objc_arc)
|
|
23
|
+
#define weakify(object) btd_keywordify __weak __typeof__(object) weak##_##object = object;
|
|
24
|
+
#else
|
|
25
|
+
#define weakify(object) btd_keywordify __block __typeof__(object) block##_##object = object;
|
|
26
|
+
#endif
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
#ifndef strongify
|
|
30
|
+
#if __has_feature(objc_arc)
|
|
31
|
+
#define strongify(object) btd_keywordify __typeof__(object) object = weak##_##object;
|
|
32
|
+
#else
|
|
33
|
+
#define strongify(object) btd_keywordify __typeof__(object) object = block##_##object;
|
|
34
|
+
#endif
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
#define FWSwizzle(class, oriMethod, newMethod) {Method originalMethod = class_getInstanceMethod(class, @selector(oriMethod));\
|
|
38
|
+
Method swizzledMethod = class_getInstanceMethod(class, @selector(newMethod));\
|
|
39
|
+
if (class_addMethod(class, @selector(oriMethod), method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))) {\
|
|
40
|
+
class_replaceMethod(class, @selector(newMethod), method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod));\
|
|
41
|
+
} else {\
|
|
42
|
+
method_exchangeImplementations(originalMethod, swizzledMethod);\
|
|
43
|
+
}}
|
|
44
|
+
|
|
45
|
+
#define FWSwizzleClass(class, oriMethod, newMethod) {Method originalMethod = class_getClassMethod(class, @selector(oriMethod));\
|
|
46
|
+
Method swizzledMethod = class_getClassMethod(class, @selector(newMethod));\
|
|
47
|
+
method_exchangeImplementations(originalMethod, swizzledMethod);\
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#define FWBase64Decode(str) [[NSString alloc] initWithData:[[NSData alloc] initWithBase64EncodedString:str options:0] encoding:NSUTF8StringEncoding]
|
|
51
|
+
|
|
52
|
+
#endif /* FWRTLDefinitions_h */
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NSObject+FWRTLReloadBlock.h
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by 熊典 on 2018/12/6.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
|
|
10
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
11
|
+
|
|
12
|
+
@interface NSObject (FWRTLReloadBlock)
|
|
13
|
+
|
|
14
|
+
- (void)fwrtl_performReload;
|
|
15
|
+
- (void)fwrtl_addReloadBlockForKey:(NSString *)key andExecuteIt:(void (^)(void))reloadBlock;
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NSObject+FWRTLReloadBlock.m
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by 熊典 on 2018/12/6.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "NSObject+FWRTLReloadBlock.h"
|
|
9
|
+
#import <objc/runtime.h>
|
|
10
|
+
|
|
11
|
+
@interface NSObject ()
|
|
12
|
+
|
|
13
|
+
@property (nonatomic, strong) NSMutableDictionary<NSString *, void (^)(void)> *fwrtl_reloadBlocks;
|
|
14
|
+
|
|
15
|
+
@end
|
|
16
|
+
|
|
17
|
+
@implementation NSObject (FWRTLReloadBlock)
|
|
18
|
+
|
|
19
|
+
- (void)setFwrtl_reloadBlocks:(NSMutableDictionary<NSString *,void (^)(void)> *)fwrtl_reloadBlocks
|
|
20
|
+
{
|
|
21
|
+
objc_setAssociatedObject(self, @selector(fwrtl_reloadBlocks), fwrtl_reloadBlocks, OBJC_ASSOCIATION_RETAIN);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
- (NSMutableDictionary<NSString *,void (^)(void)> *)fwrtl_reloadBlocks
|
|
25
|
+
{
|
|
26
|
+
return objc_getAssociatedObject(self, _cmd);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (void)fwrtl_addReloadBlockForKey:(NSString *)key andExecuteIt:(void (^)(void))reloadBlock
|
|
30
|
+
{
|
|
31
|
+
if (!self.fwrtl_reloadBlocks) {
|
|
32
|
+
self.fwrtl_reloadBlocks = [NSMutableDictionary dictionary];
|
|
33
|
+
}
|
|
34
|
+
if (reloadBlock) {
|
|
35
|
+
[self.fwrtl_reloadBlocks setObject:reloadBlock forKey:key];
|
|
36
|
+
reloadBlock();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
- (void)fwrtl_performReload
|
|
41
|
+
{
|
|
42
|
+
if (self.fwrtl_reloadBlocks) {
|
|
43
|
+
[self.fwrtl_reloadBlocks enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, void (^ _Nonnull obj)(void), BOOL * _Nonnull stop) {
|
|
44
|
+
obj();
|
|
45
|
+
}];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NSString+FWRTL.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by 唐健 on 2019/5/23.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
11
|
+
|
|
12
|
+
@interface NSString (FWRTL)
|
|
13
|
+
|
|
14
|
+
- (BOOL)isRTLString;
|
|
15
|
+
- (BOOL)isLTRString;
|
|
16
|
+
- (NSString *)RTLString;
|
|
17
|
+
- (NSString *)LTRString;
|
|
18
|
+
|
|
19
|
+
@end
|
|
20
|
+
|
|
21
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NSString+FWRTL.m
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by 唐健 on 2019/5/23.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "NSString+FWRTL.h"
|
|
9
|
+
|
|
10
|
+
@implementation NSString (FWRTL)
|
|
11
|
+
|
|
12
|
+
- (BOOL)isRTLString
|
|
13
|
+
{
|
|
14
|
+
return [self hasPrefix:@"\u202B"];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
- (BOOL)isLTRString
|
|
18
|
+
{
|
|
19
|
+
return [self hasPrefix:@"\u202A"];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
- (NSString *)RTLString
|
|
23
|
+
{
|
|
24
|
+
if ([self isRTLString] || [self isLTRString]) {
|
|
25
|
+
return self;
|
|
26
|
+
}
|
|
27
|
+
return [NSString stringWithFormat:@"\u202B%@\u202C", self];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
- (NSString *)LTRString
|
|
31
|
+
{
|
|
32
|
+
if ([self isRTLString] || [self isLTRString]) {
|
|
33
|
+
return self;
|
|
34
|
+
}
|
|
35
|
+
return [NSString stringWithFormat:@"\u202A%@\u202C", self];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// UIImage+FWRTL.h
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by 熊典 on 2018/12/6.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <UIKit/UIKit.h>
|
|
9
|
+
|
|
10
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
11
|
+
|
|
12
|
+
@interface UIImage (FWRTL)
|
|
13
|
+
|
|
14
|
+
@property (nonatomic, strong) NSString *fwrtl_imageName;
|
|
15
|
+
|
|
16
|
+
@end
|
|
17
|
+
|
|
18
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// UIImage+FWRTL.m
|
|
3
|
+
// FWRTL
|
|
4
|
+
//
|
|
5
|
+
// Created by 熊典 on 2018/12/6.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "UIImage+FWRTL.h"
|
|
9
|
+
#import "FWRTLDefinitions.h"
|
|
10
|
+
|
|
11
|
+
@implementation UIImage (FWRTL)
|
|
12
|
+
|
|
13
|
+
+ (void)load
|
|
14
|
+
{
|
|
15
|
+
FWSwizzleClass(self, imageNamed:, fwrtl_imageNamed:);
|
|
16
|
+
FWSwizzleClass(self, imageNamed:inBundle:compatibleWithTraitCollection:, fwrtl_imageNamed:inBundle:compatibleWithTraitCollection:);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
+ (UIImage *)fwrtl_imageNamed:(NSString *)name
|
|
20
|
+
{
|
|
21
|
+
UIImage *image = [self fwrtl_imageNamed:name];
|
|
22
|
+
image.fwrtl_imageName = name;
|
|
23
|
+
return image;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
+ (UIImage *)fwrtl_imageNamed:(NSString *)name inBundle:(NSBundle *)bundle compatibleWithTraitCollection:(UITraitCollection *)traitCollection
|
|
27
|
+
{
|
|
28
|
+
UIImage *image = [self fwrtl_imageNamed:name inBundle:bundle compatibleWithTraitCollection:traitCollection];
|
|
29
|
+
image.fwrtl_imageName = name;
|
|
30
|
+
return image;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (NSString *)fwrtl_imageName
|
|
34
|
+
{
|
|
35
|
+
return objc_getAssociatedObject(self, _cmd);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
- (void)setFwrtl_imageName:(NSString *)fwrtl_imageName
|
|
39
|
+
{
|
|
40
|
+
objc_setAssociatedObject(self, @selector(fwrtl_imageName), fwrtl_imageName, OBJC_ASSOCIATION_RETAIN);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@end
|
|
@@ -5,12 +5,17 @@
|
|
|
5
5
|
//
|
|
6
6
|
|
|
7
7
|
#import "FWSwizzleLoader.h"
|
|
8
|
+
|
|
9
|
+
#if __has_include(<react_native_firework_sdk/react_native_firework_sdk-Swift.h>)
|
|
10
|
+
#import <react_native_firework_sdk/react_native_firework_sdk-Swift.h>
|
|
11
|
+
#else
|
|
8
12
|
#import "react_native_firework_sdk-Swift.h"
|
|
13
|
+
#endif
|
|
9
14
|
|
|
10
15
|
@implementation FWSwizzleLoader
|
|
11
16
|
|
|
12
17
|
+ (void)load {
|
|
13
|
-
[
|
|
18
|
+
[self swizzelMethods];
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
@end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FWSwizzleLoader.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by linjie jiang on 2023/2/9.
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
import Foundation
|
|
8
|
+
|
|
9
|
+
extension FWSwizzleLoader {
|
|
10
|
+
@objc public static func swizzelMethods() {
|
|
11
|
+
UINavigationController.swizzleMethodsForNavigationController()
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
//
|
|
2
2
|
// FWSwizzleUtil.swift
|
|
3
|
-
//
|
|
3
|
+
//
|
|
4
4
|
// Created by linjie jiang on 2023/2/7.
|
|
5
5
|
//
|
|
6
6
|
|
|
7
7
|
import Foundation
|
|
8
8
|
|
|
9
|
-
class FWSwizzleUtil {
|
|
10
|
-
static func swizzleSelector(cls: AnyClass,
|
|
11
|
-
guard let
|
|
9
|
+
public class FWSwizzleUtil {
|
|
10
|
+
public static func swizzleSelector(cls: AnyClass, originalSelector: Selector, customSelector: Selector) {
|
|
11
|
+
guard let originalMethod = class_getInstanceMethod(cls, originalSelector) else { return }
|
|
12
12
|
guard let customMethod = class_getInstanceMethod(cls, customSelector) else { return }
|
|
13
13
|
|
|
14
14
|
if class_addMethod(
|
|
15
15
|
cls,
|
|
16
|
-
|
|
16
|
+
originalSelector,
|
|
17
17
|
method_getImplementation(customMethod),
|
|
18
|
-
method_getTypeEncoding(customMethod)
|
|
18
|
+
method_getTypeEncoding(customMethod)
|
|
19
|
+
) {
|
|
19
20
|
class_replaceMethod(
|
|
20
21
|
cls,
|
|
21
22
|
customSelector,
|
|
22
|
-
method_getImplementation(
|
|
23
|
-
method_getTypeEncoding(
|
|
23
|
+
method_getImplementation(originalMethod),
|
|
24
|
+
method_getTypeEncoding(originalMethod)
|
|
24
25
|
)
|
|
25
26
|
} else {
|
|
26
|
-
method_exchangeImplementations(
|
|
27
|
+
method_exchangeImplementations(originalMethod, customMethod)
|
|
27
28
|
}
|
|
28
29
|
}
|
|
30
|
+
|
|
31
|
+
public static func swizzleClassSelector(cls: AnyClass, originalSelector: Selector, customSelector: Selector) {
|
|
32
|
+
guard let originalMethod = class_getClassMethod(cls, originalSelector) else { return }
|
|
33
|
+
guard let customMethod = class_getClassMethod(cls, customSelector) else { return }
|
|
34
|
+
|
|
35
|
+
method_exchangeImplementations(originalMethod, customMethod)
|
|
36
|
+
}
|
|
29
37
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# enable multi host streaming
|
|
2
|
+
def enable_multi_host_streaming
|
|
3
|
+
multi_host_streaming_dir = File.expand_path("#{__dir__}/../Support/MultiHostStreaming")
|
|
4
|
+
# puts "multiHostStreamingDir: #{multi_host_streaming_dir}"
|
|
5
|
+
pod 'FWMultiHostStreaming', path: multi_host_streaming_dir, :modular_headers => true
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# def force_static_library(pod)
|
|
9
|
+
# static_library_list = ['react-native-firework-sdk']
|
|
10
|
+
# if static_library_list.include?(pod.name)
|
|
11
|
+
# def pod.build_type
|
|
12
|
+
# Pod::BuildType.static_library
|
|
13
|
+
# end
|
|
14
|
+
# end
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
def force_dynamic_framework(pod)
|
|
18
|
+
dynamic_framework_list = ['SwiftProtobuf']
|
|
19
|
+
if dynamic_framework_list.include?(pod.name)
|
|
20
|
+
def pod.build_type
|
|
21
|
+
Pod::BuildType.dynamic_framework
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def react_native_firework_sdk_pre_install(installer)
|
|
27
|
+
installer.pod_targets.each do |pod|
|
|
28
|
+
# force_static_library(pod)
|
|
29
|
+
force_dynamic_framework(pod)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -101,6 +101,10 @@ class FireworkSDK {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
get appLanguage() {
|
|
105
|
+
return this._appLanguage;
|
|
106
|
+
}
|
|
107
|
+
|
|
104
108
|
/**
|
|
105
109
|
* Defaults to false.
|
|
106
110
|
* You can enable debug logs by setting this property to true.
|
|
@@ -172,6 +176,8 @@ class FireworkSDK {
|
|
|
172
176
|
|
|
173
177
|
_defineProperty(this, "_adBadgeConfiguration", void 0);
|
|
174
178
|
|
|
179
|
+
_defineProperty(this, "_appLanguage", void 0);
|
|
180
|
+
|
|
175
181
|
_defineProperty(this, "_videoLaunchBehavior", void 0);
|
|
176
182
|
|
|
177
183
|
_defineProperty(this, "_shopping", _VideoShopping.default.getInstance());
|
|
@@ -265,15 +271,26 @@ class FireworkSDK {
|
|
|
265
271
|
}
|
|
266
272
|
}
|
|
267
273
|
/**
|
|
268
|
-
* Change App level language. Only supported on
|
|
269
|
-
* @param {string} language Such as en, ar and en-US
|
|
270
|
-
*
|
|
274
|
+
* Change App level language. Only supported on iOS.
|
|
275
|
+
* @param {string | undefined | null} language Such as en, ar and en-US
|
|
276
|
+
* If language is null or undefined or empty string, SDK will use system language.
|
|
277
|
+
* @returns {Promise<boolean>} The result of changing app language.
|
|
271
278
|
*/
|
|
272
279
|
|
|
273
280
|
|
|
274
281
|
async changeAppLanguage(language) {
|
|
275
|
-
if (_reactNative.Platform.OS === '
|
|
282
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
276
283
|
const result = await _FireworkSDKModule.default.changeAppLanguage(language);
|
|
284
|
+
|
|
285
|
+
if (result) {
|
|
286
|
+
const valueHasChanged = this._appLanguage !== language;
|
|
287
|
+
this._appLanguage = language;
|
|
288
|
+
|
|
289
|
+
if (valueHasChanged) {
|
|
290
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.AppLanguageUpdated);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
277
294
|
return result;
|
|
278
295
|
}
|
|
279
296
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","getShareBaseURL","_shareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","debugLogsEnabled","enabled","getVideoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","options","then","shareBaseURLChanged","shareBaseURL","ShareBaseURLUpdated","videoLaunchBehaviorUpdated","videoLaunchBehavior","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","Platform","OS","changeAppLanguage","language","result"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Firework SDK.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback. Only supported on iOS.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * Get share base URL.\n */\n public getShareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * Get the configuration for ad badges. Only supported on iOS.\n */\n public getAdBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n /**\n * Set the configuration for ad badges. Only supported on iOS.\n */\n public async setAdBadgeConfiguration(\n value: AdBadgeConfiguration | undefined\n ): Promise<void> {\n await FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n /**\n * Defaults to false.\n * You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n /**\n * Get video launch behavior.\n */\n public getVideoLaunchBehavior(): VideoLaunchBehavior | undefined {\n return this._videoLaunchBehavior;\n }\n private _videoLaunchBehavior: VideoLaunchBehavior | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n FWLoggerUtil.log('FireworkSDK constructor');\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n\n FireworkSDKModule.init(options).then(() => {\n const shareBaseURLChanged = this._shareBaseURL !== options?.shareBaseURL;\n this._shareBaseURL = options?.shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n });\n ShoppingModule.init();\n LiveStreamModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language. Only supported on Android.\n * @param {string} language Such as en, ar and en-US\n * @returns {Promise<boolean>}\n */\n public async changeAppLanguage(language: string): Promise<boolean> {\n if (Platform.OS === 'android') {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n return result;\n }\n\n return false;\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","getShareBaseURL","_shareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","appLanguage","_appLanguage","debugLogsEnabled","enabled","getVideoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","options","then","shareBaseURLChanged","shareBaseURL","ShareBaseURLUpdated","videoLaunchBehaviorUpdated","videoLaunchBehavior","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","Platform","OS","changeAppLanguage","language","result","AppLanguageUpdated"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Firework SDK.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback. Only supported on iOS.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * Get share base URL.\n */\n public getShareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * Get the configuration for ad badges. Only supported on iOS.\n */\n public getAdBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n /**\n * Set the configuration for ad badges. Only supported on iOS.\n */\n public async setAdBadgeConfiguration(\n value: AdBadgeConfiguration | undefined\n ): Promise<void> {\n await FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n public get appLanguage(): string | undefined | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\n\n /**\n * Defaults to false.\n * You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n /**\n * Get video launch behavior.\n */\n public getVideoLaunchBehavior(): VideoLaunchBehavior | undefined {\n return this._videoLaunchBehavior;\n }\n private _videoLaunchBehavior: VideoLaunchBehavior | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n FWLoggerUtil.log('FireworkSDK constructor');\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n\n FireworkSDKModule.init(options).then(() => {\n const shareBaseURLChanged = this._shareBaseURL !== options?.shareBaseURL;\n this._shareBaseURL = options?.shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n });\n ShoppingModule.init();\n LiveStreamModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language. Only supported on iOS.\n * @param {string | undefined | null} language Such as en, ar and en-US\n * If language is null or undefined or empty string, SDK will use system language.\n * @returns {Promise<boolean>} The result of changing app language.\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n if (Platform.OS === 'ios') {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n if (result) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n return result;\n }\n\n return false;\n }\n}\n\nexport default FireworkSDK;\n"]}
|