tapjoy-react-native-sdk 0.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.
Files changed (61) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +67 -0
  3. package/android/build.gradle +92 -0
  4. package/android/gradle.properties +6 -0
  5. package/android/settings.gradle +3 -0
  6. package/android/src/main/AndroidManifest.xml +4 -0
  7. package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkModule.kt +307 -0
  8. package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkPackage.kt +16 -0
  9. package/ios/TapjoyReactNativeSdk-Bridging-Header.h +6 -0
  10. package/ios/TapjoyReactNativeSdk.m +34 -0
  11. package/ios/TapjoyReactNativeSdk.swift +232 -0
  12. package/ios/TapjoyReactNativeSdk.xcodeproj/project.pbxproj +291 -0
  13. package/ios/TapjoyReactNativeSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  14. package/ios/TapjoyReactNativeSdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  15. package/ios/TapjoyReactNativeSdk.xcodeproj/xcshareddata/xcschemes/TapjoyReactNativeSdk.xcscheme +67 -0
  16. package/lib/commonjs/TJPlacement.js +65 -0
  17. package/lib/commonjs/TJPlacement.js.map +1 -0
  18. package/lib/commonjs/TJPrivacyPolicy.js +25 -0
  19. package/lib/commonjs/TJPrivacyPolicy.js.map +1 -0
  20. package/lib/commonjs/TJVersion.js +22 -0
  21. package/lib/commonjs/TJVersion.js.map +1 -0
  22. package/lib/commonjs/index.js +42 -0
  23. package/lib/commonjs/index.js.map +1 -0
  24. package/lib/module/TJPlacement.js +58 -0
  25. package/lib/module/TJPlacement.js.map +1 -0
  26. package/lib/module/TJPrivacyPolicy.js +18 -0
  27. package/lib/module/TJPrivacyPolicy.js.map +1 -0
  28. package/lib/module/TJVersion.js +14 -0
  29. package/lib/module/TJVersion.js.map +1 -0
  30. package/lib/module/index.js +16 -0
  31. package/lib/module/index.js.map +1 -0
  32. package/lib/typescript/TJPlacement.d.ts +17 -0
  33. package/lib/typescript/TJPlacement.d.ts.map +1 -0
  34. package/lib/typescript/TJPrivacyPolicy.d.ts +8 -0
  35. package/lib/typescript/TJPrivacyPolicy.d.ts.map +1 -0
  36. package/lib/typescript/TJVersion.d.ts +5 -0
  37. package/lib/typescript/TJVersion.d.ts.map +1 -0
  38. package/lib/typescript/index.d.ts +7 -0
  39. package/lib/typescript/index.d.ts.map +1 -0
  40. package/lib/typescript/package/src/TJPlacement.d.ts +17 -0
  41. package/lib/typescript/package/src/TJPlacement.d.ts.map +1 -0
  42. package/lib/typescript/package/src/TJPrivacyPolicy.d.ts +8 -0
  43. package/lib/typescript/package/src/TJPrivacyPolicy.d.ts.map +1 -0
  44. package/lib/typescript/package/src/TJVersion.d.ts +5 -0
  45. package/lib/typescript/package/src/TJVersion.d.ts.map +1 -0
  46. package/lib/typescript/package/src/index.d.ts +7 -0
  47. package/lib/typescript/package/src/index.d.ts.map +1 -0
  48. package/lib/typescript/src/TJPlacement.d.ts +17 -0
  49. package/lib/typescript/src/TJPlacement.d.ts.map +1 -0
  50. package/lib/typescript/src/TJPrivacyPolicy.d.ts +8 -0
  51. package/lib/typescript/src/TJPrivacyPolicy.d.ts.map +1 -0
  52. package/lib/typescript/src/TJVersion.d.ts +5 -0
  53. package/lib/typescript/src/TJVersion.d.ts.map +1 -0
  54. package/lib/typescript/src/index.d.ts +7 -0
  55. package/lib/typescript/src/index.d.ts.map +1 -0
  56. package/package.json +163 -0
  57. package/src/TJPlacement.ts +81 -0
  58. package/src/TJPrivacyPolicy.ts +23 -0
  59. package/src/TJVersion.ts +15 -0
  60. package/src/index.ts +24 -0
  61. package/tapjoy-react-native-sdk.podspec +36 -0
@@ -0,0 +1,232 @@
1
+ import Foundation
2
+
3
+ @objc(TapjoyReactNativeSdk)
4
+ class TapjoyReactNativeSdk: RCTEventEmitter {
5
+
6
+ fileprivate var placements: [ String: TJPlacement? ]
7
+ fileprivate var listeners = 0
8
+
9
+ var storedResolve: RCTPromiseResolveBlock?
10
+ var storedReject: RCTPromiseRejectBlock?
11
+
12
+ override init() {
13
+ self.placements = [:]
14
+ super.init()
15
+ }
16
+
17
+ // MARK: - Events
18
+ @objc override func supportedEvents() -> [String] {
19
+ return ["TapjoyPlacement"];
20
+ }
21
+
22
+ @objc override func startObserving() {
23
+ listeners += 1
24
+ }
25
+
26
+ @objc override func stopObserving() {
27
+ listeners -= 1
28
+ }
29
+
30
+ func attemptSendEvent(withName name: String, body: [AnyHashable : Any?]?) {
31
+ if (listeners > 0) {
32
+ sendEvent(withName: name, body: body)
33
+ }
34
+ }
35
+
36
+ // MARK: - SDK
37
+ /**
38
+ Connect to Tapjoy.
39
+ - Parameter sdkKey: SDK key the app.
40
+ - Parameter connectFlags:Dictionary for the connection flag values.
41
+ - Returns true to javascript if it is succeeded otherwise throws error
42
+ */
43
+ @objc func connect(_ sdkKey: String, connectFlags: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
44
+ if storedResolve == nil {
45
+ NotificationCenter.default.addObserver(self, selector: #selector(tjcConnectSuccess(_:)), name: NSNotification.Name(TJC_CONNECT_SUCCESS), object: nil)
46
+ NotificationCenter.default.addObserver(self, selector: #selector(tjcConnectFail(_:)), name: NSNotification.Name(TJC_CONNECT_FAILED), object: nil)
47
+ }
48
+
49
+ storedResolve = resolve
50
+ storedReject = reject
51
+
52
+ Tapjoy.sharedTapjoyConnect().plugin = "ReactNative"
53
+
54
+ Tapjoy.connect(sdkKey, options: connectFlags as? [AnyHashable: Any])
55
+ }
56
+
57
+ @objc func tjcConnectSuccess(_ notifyObj: Notification) {
58
+ if let storedResolve = storedResolve {
59
+ storedResolve(true)
60
+ }
61
+ storedResolve = nil
62
+ storedReject = nil
63
+ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(TJC_CONNECT_SUCCESS), object: nil)
64
+ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(TJC_CONNECT_FAILED), object: nil)
65
+ }
66
+
67
+ @objc func tjcConnectFail(_ notifyObj: Notification) {
68
+ if let storedReject = storedReject {
69
+ storedReject("Connect Error", "Connect Call Failed", nil)
70
+ }
71
+ storedResolve = nil;
72
+ storedReject = nil
73
+ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(TJC_CONNECT_SUCCESS), object: nil)
74
+ NotificationCenter.default.removeObserver(self, name: NSNotification.Name(TJC_CONNECT_FAILED), object: nil)
75
+ }
76
+
77
+ /**
78
+ Enables debug log
79
+ - Parameter enabled: true for enabling and false for disabling
80
+ */
81
+ @objc func setDebugEnabled(_ enabled: Bool) {
82
+ Tapjoy.setDebugEnabled(enabled)
83
+ }
84
+
85
+ @objc func isConnected() -> NSNumber {
86
+ return NSNumber(value:Tapjoy.isConnected())
87
+ }
88
+
89
+ @objc func setUserId(_ userId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
90
+ Tapjoy.setUserIDWithCompletion(userId) { success, error in
91
+ if (success) {
92
+ resolve(userId)
93
+ } else {
94
+ reject(nil, nil, error)
95
+ }
96
+ }
97
+ }
98
+
99
+ // MARK: - Placements
100
+
101
+ /**
102
+ Request content for a given placement.
103
+ - Parameter name: Case-sensitive placement name string. Must not be empty or null.
104
+ */
105
+ @objc func requestPlacement(_ name: String) {
106
+ if let placement = TJPlacement(name: name, delegate: self) {
107
+ placements[name] = placement
108
+ placement.requestContent()
109
+ }
110
+ }
111
+
112
+ /**
113
+ Show content for a given placement.
114
+ - Parameter name: Case-sensitive placement name string. Must not be empty or null.
115
+ */
116
+ @objc func showPlacement(_ name: String) {
117
+ guard let placement = placements[name] as? TJPlacement else {
118
+ return
119
+ }
120
+ placement.showContent(with: nil);
121
+ }
122
+
123
+ /**
124
+ Check if content has been downloaded and ready to show for a given placement.
125
+ - Parameter name: Case-sensitive placement name string. Must not be empty or null.
126
+ */
127
+ @objc func isContentReady(_ name: String) -> NSNumber? {
128
+ guard let placement = placements[name] as? TJPlacement else {
129
+ return NSNumber(value: false)
130
+ }
131
+ return NSNumber(value:placement.isContentReady)
132
+ }
133
+
134
+ /**
135
+ Check if content is available to cache or stream for a given placement.
136
+ - Parameter name: Case-sensitive placement name string. Must not be empty or null.
137
+ */
138
+ @objc func isContentAvailable(_ name: String) -> NSNumber? {
139
+ guard let placement = placements[name] as? TJPlacement else {
140
+ return NSNumber(value: false)
141
+ }
142
+ return NSNumber(value:placement.isContentAvailable)
143
+ }
144
+
145
+ // MARK: - Currency
146
+ @objc func getCurrencyBalance(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
147
+ Tapjoy.getCurrencyBalance(completion: { parameters, error in
148
+ if let error = error {
149
+ reject(nil, nil, error)
150
+ } else {
151
+ resolve(parameters)
152
+ }
153
+ })
154
+ }
155
+
156
+ @objc func spendCurrency(_ amount: Int32, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
157
+ Tapjoy.spendCurrency(amount, completion: { parameters, error in
158
+ if let error = error {
159
+ reject(nil, nil, error)
160
+ } else {
161
+ resolve(parameters)
162
+ }
163
+ })
164
+ }
165
+
166
+ @objc func awardCurrency(_ amount: Int32, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
167
+ Tapjoy.awardCurrency(amount, completion: { parameters, error in
168
+ if let error = error {
169
+ reject(nil, nil, error)
170
+ } else {
171
+ resolve(parameters)
172
+ }
173
+ })
174
+ }
175
+
176
+ // MARK: - Privacy
177
+ /**
178
+ Indicate if the user falls in any of the GDPR applicable countries.
179
+ - Parameter isSubjectToGDPR: true for enabling and false for disabling.
180
+ */
181
+ @objc func setSubjectToGDPR(_ isSubjectToGDPR: Bool) {
182
+ Tapjoy.getPrivacyPolicy().setSubjectToGDPR(isSubjectToGDPR)
183
+ }
184
+
185
+ /**
186
+ This method will set ad_tracking_enabled to false for Tapjoy which only shows the user contextual ads. No ad tracking will be done on this user.
187
+ - Parameter isBelowConsentAge: true if the user is affected by COPPA, false if they are not.
188
+ */
189
+ @objc func setBelowConsentAge(_ isBelowConsentAge: Bool) {
190
+ Tapjoy.getPrivacyPolicy().setBelowConsentAge(isBelowConsentAge)
191
+ }
192
+
193
+ /**
194
+ This is used for sending US Privacy value to behavioral advertising such as in the context of GDPR.
195
+ - Parameter privacyValue: The privacy value string. eg. "1YNN" where 1 is char in string for the version, Y = YES, N = No, - = Not Applicable
196
+ */
197
+ @objc func setUSPrivacy(_ privacyValue: String) {
198
+ Tapjoy.getPrivacyPolicy().setUSPrivacy(privacyValue)
199
+ }
200
+
201
+ /**
202
+ * This is used for sending User's consent to behavioral advertising such as in the context of GDPR
203
+ * - Parameter userConsent: The value can be "0" (User has not provided consent), "1" (User has provided consent) or a daisybit string as suggested in IAB's Transparency and Consent Framework
204
+ */
205
+ @objc func setUserConsent(_ userConsent: String) {
206
+ Tapjoy.getPrivacyPolicy().setUserConsent(userConsent)
207
+ }
208
+ }
209
+
210
+ extension TapjoyReactNativeSdk: TJPlacementDelegate {
211
+ func requestDidSucceed(_ placement: TJPlacement) {
212
+ attemptSendEvent(withName:"TapjoyPlacement", body: [ "name" : "requestDidSucceed", "placement": placement.placementName ])
213
+ }
214
+
215
+ func requestDidFail(_ placement: TJPlacement, error: Error?) {
216
+ placements[placement.placementName] = nil
217
+ attemptSendEvent(withName:"TapjoyPlacement", body: [ "name" : "requestDidFail", "placement": placement.placementName, "error" : error?.localizedDescription ])
218
+ }
219
+
220
+ func contentIsReady(_ placement: TJPlacement) {
221
+ attemptSendEvent(withName:"TapjoyPlacement", body: [ "name" : "contentIsReady", "placement": placement.placementName ])
222
+ }
223
+
224
+ func contentDidAppear(_ placement: TJPlacement) {
225
+ attemptSendEvent(withName:"TapjoyPlacement", body: [ "name" : "contentDidAppear", "placement": placement.placementName ])
226
+ }
227
+
228
+ func contentDidDisappear(_ placement: TJPlacement) {
229
+ placements[placement.placementName] = nil
230
+ attemptSendEvent(withName:"TapjoyPlacement", body: [ "name" : "contentDidDisappear", "placement": placement.placementName ])
231
+ }
232
+ }
@@ -0,0 +1,291 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXCopyFilesBuildPhase section */
10
+ 58B511D91A9E6C8500147676 /* CopyFiles */ = {
11
+ isa = PBXCopyFilesBuildPhase;
12
+ buildActionMask = 2147483647;
13
+ dstPath = "include/$(PRODUCT_NAME)";
14
+ dstSubfolderSpec = 16;
15
+ files = (
16
+ );
17
+ runOnlyForDeploymentPostprocessing = 0;
18
+ };
19
+ /* End PBXCopyFilesBuildPhase section */
20
+
21
+ /* Begin PBXFileReference section */
22
+ 134814201AA4EA6300B7C361 /* libTapjoyReactNativeSdk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTapjoyReactNativeSdk.a; sourceTree = BUILT_PRODUCTS_DIR; };
23
+ 2BDE3C8F29D5AE0E009EB4F1 /* TapjoyPlacement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TapjoyPlacement.m; sourceTree = "<group>"; };
24
+ 2BDE3C9029D5AE54009EB4F1 /* TapjoyPlacement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapjoyPlacement.swift; sourceTree = "<group>"; };
25
+ B3E7B5891CC2AC0600A0062D /* TapjoyReactNativeSdk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TapjoyReactNativeSdk.m; sourceTree = "<group>"; };
26
+ F4FF95D5245B92E700C19C63 /* TapjoyReactNativeSdk-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TapjoyReactNativeSdk-Bridging-Header.h"; sourceTree = "<group>"; };
27
+ F4FF95D6245B92E800C19C63 /* TapjoyReactNativeSdk.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TapjoyReactNativeSdk.swift; sourceTree = "<group>"; };
28
+ /* End PBXFileReference section */
29
+
30
+ /* Begin PBXFrameworksBuildPhase section */
31
+ 58B511D81A9E6C8500147676 /* Frameworks */ = {
32
+ isa = PBXFrameworksBuildPhase;
33
+ buildActionMask = 2147483647;
34
+ files = (
35
+ );
36
+ runOnlyForDeploymentPostprocessing = 0;
37
+ };
38
+ /* End PBXFrameworksBuildPhase section */
39
+
40
+ /* Begin PBXGroup section */
41
+ 134814211AA4EA7D00B7C361 /* Products */ = {
42
+ isa = PBXGroup;
43
+ children = (
44
+ 134814201AA4EA6300B7C361 /* libTapjoyReactNativeSdk.a */,
45
+ );
46
+ name = Products;
47
+ sourceTree = "<group>";
48
+ };
49
+ 58B511D21A9E6C8500147676 = {
50
+ isa = PBXGroup;
51
+ children = (
52
+ 2BDE3C9029D5AE54009EB4F1 /* TapjoyPlacement.swift */,
53
+ 2BDE3C8F29D5AE0E009EB4F1 /* TapjoyPlacement.m */,
54
+ F4FF95D6245B92E800C19C63 /* TapjoyReactNativeSdk.swift */,
55
+ B3E7B5891CC2AC0600A0062D /* TapjoyReactNativeSdk.m */,
56
+ F4FF95D5245B92E700C19C63 /* TapjoyReactNativeSdk-Bridging-Header.h */,
57
+ 134814211AA4EA7D00B7C361 /* Products */,
58
+ );
59
+ sourceTree = "<group>";
60
+ };
61
+ /* End PBXGroup section */
62
+
63
+ /* Begin PBXNativeTarget section */
64
+ 58B511DA1A9E6C8500147676 /* TapjoyReactNativeSdk */ = {
65
+ isa = PBXNativeTarget;
66
+ buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "TapjoyReactNativeSdk" */;
67
+ buildPhases = (
68
+ 58B511D71A9E6C8500147676 /* Sources */,
69
+ 58B511D81A9E6C8500147676 /* Frameworks */,
70
+ 58B511D91A9E6C8500147676 /* CopyFiles */,
71
+ );
72
+ buildRules = (
73
+ );
74
+ dependencies = (
75
+ );
76
+ name = TapjoyReactNativeSdk;
77
+ productName = RCTDataManager;
78
+ productReference = 134814201AA4EA6300B7C361 /* libTapjoyReactNativeSdk.a */;
79
+ productType = "com.apple.product-type.library.static";
80
+ };
81
+ /* End PBXNativeTarget section */
82
+
83
+ /* Begin PBXProject section */
84
+ 58B511D31A9E6C8500147676 /* Project object */ = {
85
+ isa = PBXProject;
86
+ attributes = {
87
+ LastUpgradeCheck = 1420;
88
+ ORGANIZATIONNAME = Facebook;
89
+ TargetAttributes = {
90
+ 58B511DA1A9E6C8500147676 = {
91
+ CreatedOnToolsVersion = 6.1.1;
92
+ };
93
+ };
94
+ };
95
+ buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "TapjoyReactNativeSdk" */;
96
+ compatibilityVersion = "Xcode 3.2";
97
+ developmentRegion = English;
98
+ hasScannedForEncodings = 0;
99
+ knownRegions = (
100
+ English,
101
+ en,
102
+ );
103
+ mainGroup = 58B511D21A9E6C8500147676;
104
+ productRefGroup = 58B511D21A9E6C8500147676;
105
+ projectDirPath = "";
106
+ projectRoot = "";
107
+ targets = (
108
+ 58B511DA1A9E6C8500147676 /* TapjoyReactNativeSdk */,
109
+ );
110
+ };
111
+ /* End PBXProject section */
112
+
113
+ /* Begin PBXSourcesBuildPhase section */
114
+ 58B511D71A9E6C8500147676 /* Sources */ = {
115
+ isa = PBXSourcesBuildPhase;
116
+ buildActionMask = 2147483647;
117
+ files = (
118
+ );
119
+ runOnlyForDeploymentPostprocessing = 0;
120
+ };
121
+ /* End PBXSourcesBuildPhase section */
122
+
123
+ /* Begin XCBuildConfiguration section */
124
+ 58B511ED1A9E6C8500147676 /* Debug */ = {
125
+ isa = XCBuildConfiguration;
126
+ buildSettings = {
127
+ ALWAYS_SEARCH_USER_PATHS = NO;
128
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
129
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
130
+ CLANG_CXX_LIBRARY = "libc++";
131
+ CLANG_ENABLE_MODULES = YES;
132
+ CLANG_ENABLE_OBJC_ARC = YES;
133
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
134
+ CLANG_WARN_BOOL_CONVERSION = YES;
135
+ CLANG_WARN_COMMA = YES;
136
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
137
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
138
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
139
+ CLANG_WARN_EMPTY_BODY = YES;
140
+ CLANG_WARN_ENUM_CONVERSION = YES;
141
+ CLANG_WARN_INFINITE_RECURSION = YES;
142
+ CLANG_WARN_INT_CONVERSION = YES;
143
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
144
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
145
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
146
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
147
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
148
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
149
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
150
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
151
+ CLANG_WARN_UNREACHABLE_CODE = YES;
152
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
153
+ COPY_PHASE_STRIP = NO;
154
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
155
+ ENABLE_TESTABILITY = YES;
156
+ GCC_C_LANGUAGE_STANDARD = gnu99;
157
+ GCC_DYNAMIC_NO_PIC = NO;
158
+ GCC_NO_COMMON_BLOCKS = YES;
159
+ GCC_OPTIMIZATION_LEVEL = 0;
160
+ GCC_PREPROCESSOR_DEFINITIONS = (
161
+ "DEBUG=1",
162
+ "$(inherited)",
163
+ );
164
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
165
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
166
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
167
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
168
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
169
+ GCC_WARN_UNUSED_FUNCTION = YES;
170
+ GCC_WARN_UNUSED_VARIABLE = YES;
171
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
172
+ MTL_ENABLE_DEBUG_INFO = YES;
173
+ ONLY_ACTIVE_ARCH = YES;
174
+ SDKROOT = iphoneos;
175
+ };
176
+ name = Debug;
177
+ };
178
+ 58B511EE1A9E6C8500147676 /* Release */ = {
179
+ isa = XCBuildConfiguration;
180
+ buildSettings = {
181
+ ALWAYS_SEARCH_USER_PATHS = NO;
182
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
183
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
184
+ CLANG_CXX_LIBRARY = "libc++";
185
+ CLANG_ENABLE_MODULES = YES;
186
+ CLANG_ENABLE_OBJC_ARC = YES;
187
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
188
+ CLANG_WARN_BOOL_CONVERSION = YES;
189
+ CLANG_WARN_COMMA = YES;
190
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
191
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
192
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
193
+ CLANG_WARN_EMPTY_BODY = YES;
194
+ CLANG_WARN_ENUM_CONVERSION = YES;
195
+ CLANG_WARN_INFINITE_RECURSION = YES;
196
+ CLANG_WARN_INT_CONVERSION = YES;
197
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
198
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
199
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
200
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
201
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
202
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
203
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
204
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
205
+ CLANG_WARN_UNREACHABLE_CODE = YES;
206
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
207
+ COPY_PHASE_STRIP = YES;
208
+ ENABLE_NS_ASSERTIONS = NO;
209
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
210
+ GCC_C_LANGUAGE_STANDARD = gnu99;
211
+ GCC_NO_COMMON_BLOCKS = YES;
212
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
213
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
214
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
215
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
216
+ GCC_WARN_UNUSED_FUNCTION = YES;
217
+ GCC_WARN_UNUSED_VARIABLE = YES;
218
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
219
+ MTL_ENABLE_DEBUG_INFO = NO;
220
+ SDKROOT = iphoneos;
221
+ SWIFT_COMPILATION_MODE = wholemodule;
222
+ VALIDATE_PRODUCT = YES;
223
+ };
224
+ name = Release;
225
+ };
226
+ 58B511F01A9E6C8500147676 /* Debug */ = {
227
+ isa = XCBuildConfiguration;
228
+ buildSettings = {
229
+ HEADER_SEARCH_PATHS = (
230
+ "$(inherited)",
231
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
232
+ "$(SRCROOT)/../example/ios/Pods/Headers/Public/React-Core/**",
233
+ "$(SRCROOT)/../../../ios/Pods/Headers/Public/React-Core/**",
234
+ );
235
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
236
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
237
+ OTHER_LDFLAGS = "-ObjC";
238
+ PRODUCT_NAME = TapjoyReactNativeSdk;
239
+ SKIP_INSTALL = YES;
240
+ SWIFT_OBJC_BRIDGING_HEADER = "TapjoyReactNativeSdk-Bridging-Header.h";
241
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
242
+ SWIFT_VERSION = 5.0;
243
+ TARGETED_DEVICE_FAMILY = "1,2";
244
+ };
245
+ name = Debug;
246
+ };
247
+ 58B511F11A9E6C8500147676 /* Release */ = {
248
+ isa = XCBuildConfiguration;
249
+ buildSettings = {
250
+ HEADER_SEARCH_PATHS = (
251
+ "$(inherited)",
252
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
253
+ "$(SRCROOT)/../example/ios/Pods/Headers/Public/React-Core/**",
254
+ "$(SRCROOT)/../../../ios/Pods/Headers/Public/React-Core/**",
255
+ );
256
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
257
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
258
+ OTHER_LDFLAGS = "-ObjC";
259
+ PRODUCT_NAME = TapjoyReactNativeSdk;
260
+ SKIP_INSTALL = YES;
261
+ SWIFT_OBJC_BRIDGING_HEADER = "TapjoyReactNativeSdk-Bridging-Header.h";
262
+ SWIFT_VERSION = 5.0;
263
+ TARGETED_DEVICE_FAMILY = "1,2";
264
+ };
265
+ name = Release;
266
+ };
267
+ /* End XCBuildConfiguration section */
268
+
269
+ /* Begin XCConfigurationList section */
270
+ 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "TapjoyReactNativeSdk" */ = {
271
+ isa = XCConfigurationList;
272
+ buildConfigurations = (
273
+ 58B511ED1A9E6C8500147676 /* Debug */,
274
+ 58B511EE1A9E6C8500147676 /* Release */,
275
+ );
276
+ defaultConfigurationIsVisible = 0;
277
+ defaultConfigurationName = Release;
278
+ };
279
+ 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "TapjoyReactNativeSdk" */ = {
280
+ isa = XCConfigurationList;
281
+ buildConfigurations = (
282
+ 58B511F01A9E6C8500147676 /* Debug */,
283
+ 58B511F11A9E6C8500147676 /* Release */,
284
+ );
285
+ defaultConfigurationIsVisible = 0;
286
+ defaultConfigurationName = Release;
287
+ };
288
+ /* End XCConfigurationList section */
289
+ };
290
+ rootObject = 58B511D31A9E6C8500147676 /* Project object */;
291
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -0,0 +1,67 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ LastUpgradeVersion = "1420"
4
+ version = "1.3">
5
+ <BuildAction
6
+ parallelizeBuildables = "YES"
7
+ buildImplicitDependencies = "YES">
8
+ <BuildActionEntries>
9
+ <BuildActionEntry
10
+ buildForTesting = "YES"
11
+ buildForRunning = "YES"
12
+ buildForProfiling = "YES"
13
+ buildForArchiving = "YES"
14
+ buildForAnalyzing = "YES">
15
+ <BuildableReference
16
+ BuildableIdentifier = "primary"
17
+ BlueprintIdentifier = "58B511DA1A9E6C8500147676"
18
+ BuildableName = "libTapjoyReactNativeSdk.a"
19
+ BlueprintName = "TapjoyReactNativeSdk"
20
+ ReferencedContainer = "container:TapjoyReactNativeSdk.xcodeproj">
21
+ </BuildableReference>
22
+ </BuildActionEntry>
23
+ </BuildActionEntries>
24
+ </BuildAction>
25
+ <TestAction
26
+ buildConfiguration = "Debug"
27
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+ shouldUseLaunchSchemeArgsEnv = "YES">
30
+ <Testables>
31
+ </Testables>
32
+ </TestAction>
33
+ <LaunchAction
34
+ buildConfiguration = "Debug"
35
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
+ launchStyle = "0"
38
+ useCustomWorkingDirectory = "NO"
39
+ ignoresPersistentStateOnLaunch = "NO"
40
+ debugDocumentVersioning = "YES"
41
+ debugServiceExtension = "internal"
42
+ allowLocationSimulation = "YES">
43
+ </LaunchAction>
44
+ <ProfileAction
45
+ buildConfiguration = "Release"
46
+ shouldUseLaunchSchemeArgsEnv = "YES"
47
+ savedToolIdentifier = ""
48
+ useCustomWorkingDirectory = "NO"
49
+ debugDocumentVersioning = "YES">
50
+ <MacroExpansion>
51
+ <BuildableReference
52
+ BuildableIdentifier = "primary"
53
+ BlueprintIdentifier = "58B511DA1A9E6C8500147676"
54
+ BuildableName = "libTapjoyReactNativeSdk.a"
55
+ BlueprintName = "TapjoyReactNativeSdk"
56
+ ReferencedContainer = "container:TapjoyReactNativeSdk.xcodeproj">
57
+ </BuildableReference>
58
+ </MacroExpansion>
59
+ </ProfileAction>
60
+ <AnalyzeAction
61
+ buildConfiguration = "Debug">
62
+ </AnalyzeAction>
63
+ <ArchiveAction
64
+ buildConfiguration = "Release"
65
+ revealArchiveInOrganizer = "YES">
66
+ </ArchiveAction>
67
+ </Scheme>
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _eventemitter = require("eventemitter3");
9
+ const Tapjoy = _reactNative.NativeModules.TapjoyReactNativeSdk;
10
+ const TapjoyEmitter = new _reactNative.NativeEventEmitter(Tapjoy);
11
+ const TapjoyEventType = 'TapjoyPlacement';
12
+ class TJPlacement extends _eventemitter.EventEmitter {
13
+ static REQUEST_DID_SUCCEED = 'requestDidSucceed';
14
+ static REQUEST_DID_FAIL = 'requestDidFail';
15
+ static CONTENT_IS_READY = 'contentIsReady';
16
+ static CONTENT_DID_APPEAR = 'contentDidAppear';
17
+ static CONTENT_DID_DISAPPEAR = 'contentDidDisappear';
18
+ constructor(name) {
19
+ super();
20
+ this.name = name;
21
+ this.error = undefined;
22
+ }
23
+ requestContent() {
24
+ var subscription = TapjoyEmitter.addListener(TapjoyEventType, event => {
25
+ if (event.name === TJPlacement.REQUEST_DID_SUCCEED) {
26
+ // Remove listener if there is no content available.
27
+ if (!this.isContentAvailable()) {
28
+ subscription.remove();
29
+ }
30
+ this.emit(TJPlacement.REQUEST_DID_SUCCEED, this);
31
+ } else if (event.name === TJPlacement.REQUEST_DID_FAIL) {
32
+ // No more events expected, remove listener.
33
+ subscription.remove();
34
+ this.error = event.error;
35
+ this.emit(TJPlacement.REQUEST_DID_FAIL, this);
36
+ } else if (event.name === TJPlacement.CONTENT_IS_READY) {
37
+ // No more events expected, remove listener.
38
+ subscription.remove();
39
+ this.emit(TJPlacement.CONTENT_IS_READY, this);
40
+ }
41
+ });
42
+ Tapjoy.requestPlacement(this.name);
43
+ }
44
+ showContent() {
45
+ var subscription = TapjoyEmitter.addListener(TapjoyEventType, event => {
46
+ if (event.name === TJPlacement.CONTENT_DID_APPEAR) {
47
+ this.emit(TJPlacement.CONTENT_DID_APPEAR, this);
48
+ } else if (event.name === TJPlacement.CONTENT_DID_DISAPPEAR) {
49
+ // No more events expected, remove listener.
50
+ subscription.remove();
51
+ this.emit(TJPlacement.CONTENT_DID_DISAPPEAR, this);
52
+ }
53
+ });
54
+ Tapjoy.showPlacement(this.name);
55
+ }
56
+ isContentReady() {
57
+ return Tapjoy.isContentReady(this.name);
58
+ }
59
+ isContentAvailable() {
60
+ return Tapjoy.isContentAvailable(this.name);
61
+ }
62
+ }
63
+ var _default = TJPlacement;
64
+ exports.default = _default;
65
+ //# sourceMappingURL=TJPlacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_eventemitter","Tapjoy","NativeModules","TapjoyReactNativeSdk","TapjoyEmitter","NativeEventEmitter","TapjoyEventType","TJPlacement","EventEmitter","REQUEST_DID_SUCCEED","REQUEST_DID_FAIL","CONTENT_IS_READY","CONTENT_DID_APPEAR","CONTENT_DID_DISAPPEAR","constructor","name","error","undefined","requestContent","subscription","addListener","event","isContentAvailable","remove","emit","requestPlacement","showContent","showPlacement","isContentReady","_default","exports","default"],"sourceRoot":"../../src","sources":["TJPlacement.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAEA,MAAME,MAAM,GAAGC,0BAAa,CAACC,oBAAoB;AACjD,MAAMC,aAAa,GAAG,IAAIC,+BAAkB,CAACJ,MAAM,CAAC;AAEpD,MAAMK,eAAe,GAAG,iBAAiB;AAQzC,MAAMC,WAAW,SAASC,0BAAY,CAAC;EACrC,OAAgBC,mBAAmB,GAAG,mBAAmB;EACzD,OAAgBC,gBAAgB,GAAG,gBAAgB;EACnD,OAAgBC,gBAAgB,GAAG,gBAAgB;EACnD,OAAgBC,kBAAkB,GAAG,kBAAkB;EACvD,OAAgBC,qBAAqB,GAAG,qBAAqB;EAKtDC,WAAWA,CAACC,IAAY,EAAE;IAC/B,KAAK,EAAE;IACP,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,KAAK,GAAGC,SAAS;EACxB;EAEAC,cAAcA,CAAA,EAAS;IACrB,IAAIC,YAAY,GAAGf,aAAa,CAACgB,WAAW,CAC1Cd,eAAe,EACde,KAA2B,IAAK;MAC/B,IAAIA,KAAK,CAACN,IAAI,KAAKR,WAAW,CAACE,mBAAmB,EAAE;QAClD;QACA,IAAI,CAAC,IAAI,CAACa,kBAAkB,EAAE,EAAE;UAC9BH,YAAY,CAACI,MAAM,EAAE;QACvB;QACA,IAAI,CAACC,IAAI,CAACjB,WAAW,CAACE,mBAAmB,EAAE,IAAI,CAAC;MAClD,CAAC,MAAM,IAAIY,KAAK,CAACN,IAAI,KAAKR,WAAW,CAACG,gBAAgB,EAAE;QACtD;QACAS,YAAY,CAACI,MAAM,EAAE;QACrB,IAAI,CAACP,KAAK,GAAGK,KAAK,CAACL,KAAK;QACxB,IAAI,CAACQ,IAAI,CAACjB,WAAW,CAACG,gBAAgB,EAAE,IAAI,CAAC;MAC/C,CAAC,MAAM,IAAIW,KAAK,CAACN,IAAI,KAAKR,WAAW,CAACI,gBAAgB,EAAE;QACtD;QACAQ,YAAY,CAACI,MAAM,EAAE;QACrB,IAAI,CAACC,IAAI,CAACjB,WAAW,CAACI,gBAAgB,EAAE,IAAI,CAAC;MAC/C;IACF,CAAC,CACF;IACDV,MAAM,CAACwB,gBAAgB,CAAC,IAAI,CAACV,IAAI,CAAC;EACpC;EAEAW,WAAWA,CAAA,EAAS;IAClB,IAAIP,YAAY,GAAGf,aAAa,CAACgB,WAAW,CAC1Cd,eAAe,EACde,KAA2B,IAAK;MAC/B,IAAIA,KAAK,CAACN,IAAI,KAAKR,WAAW,CAACK,kBAAkB,EAAE;QACjD,IAAI,CAACY,IAAI,CAACjB,WAAW,CAACK,kBAAkB,EAAE,IAAI,CAAC;MACjD,CAAC,MAAM,IAAIS,KAAK,CAACN,IAAI,KAAKR,WAAW,CAACM,qBAAqB,EAAE;QAC3D;QACAM,YAAY,CAACI,MAAM,EAAE;QACrB,IAAI,CAACC,IAAI,CAACjB,WAAW,CAACM,qBAAqB,EAAE,IAAI,CAAC;MACpD;IACF,CAAC,CACF;IACDZ,MAAM,CAAC0B,aAAa,CAAC,IAAI,CAACZ,IAAI,CAAC;EACjC;EAEAa,cAAcA,CAAA,EAAY;IACxB,OAAO3B,MAAM,CAAC2B,cAAc,CAAC,IAAI,CAACb,IAAI,CAAC;EACzC;EAEAO,kBAAkBA,CAAA,EAAY;IAC5B,OAAOrB,MAAM,CAACqB,kBAAkB,CAAC,IAAI,CAACP,IAAI,CAAC;EAC7C;AACF;AAAC,IAAAc,QAAA,GAEctB,WAAW;AAAAuB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}