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.
- package/LICENSE +2 -0
- package/README.md +67 -0
- package/android/build.gradle +92 -0
- package/android/gradle.properties +6 -0
- package/android/settings.gradle +3 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkModule.kt +307 -0
- package/android/src/main/java/com/tapjoyreactnativesdk/TapjoyReactNativeSdkPackage.kt +16 -0
- package/ios/TapjoyReactNativeSdk-Bridging-Header.h +6 -0
- package/ios/TapjoyReactNativeSdk.m +34 -0
- package/ios/TapjoyReactNativeSdk.swift +232 -0
- package/ios/TapjoyReactNativeSdk.xcodeproj/project.pbxproj +291 -0
- package/ios/TapjoyReactNativeSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/TapjoyReactNativeSdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/TapjoyReactNativeSdk.xcodeproj/xcshareddata/xcschemes/TapjoyReactNativeSdk.xcscheme +67 -0
- package/lib/commonjs/TJPlacement.js +65 -0
- package/lib/commonjs/TJPlacement.js.map +1 -0
- package/lib/commonjs/TJPrivacyPolicy.js +25 -0
- package/lib/commonjs/TJPrivacyPolicy.js.map +1 -0
- package/lib/commonjs/TJVersion.js +22 -0
- package/lib/commonjs/TJVersion.js.map +1 -0
- package/lib/commonjs/index.js +42 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/TJPlacement.js +58 -0
- package/lib/module/TJPlacement.js.map +1 -0
- package/lib/module/TJPrivacyPolicy.js +18 -0
- package/lib/module/TJPrivacyPolicy.js.map +1 -0
- package/lib/module/TJVersion.js +14 -0
- package/lib/module/TJVersion.js.map +1 -0
- package/lib/module/index.js +16 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/TJPlacement.d.ts +17 -0
- package/lib/typescript/TJPlacement.d.ts.map +1 -0
- package/lib/typescript/TJPrivacyPolicy.d.ts +8 -0
- package/lib/typescript/TJPrivacyPolicy.d.ts.map +1 -0
- package/lib/typescript/TJVersion.d.ts +5 -0
- package/lib/typescript/TJVersion.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +7 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/package/src/TJPlacement.d.ts +17 -0
- package/lib/typescript/package/src/TJPlacement.d.ts.map +1 -0
- package/lib/typescript/package/src/TJPrivacyPolicy.d.ts +8 -0
- package/lib/typescript/package/src/TJPrivacyPolicy.d.ts.map +1 -0
- package/lib/typescript/package/src/TJVersion.d.ts +5 -0
- package/lib/typescript/package/src/TJVersion.d.ts.map +1 -0
- package/lib/typescript/package/src/index.d.ts +7 -0
- package/lib/typescript/package/src/index.d.ts.map +1 -0
- package/lib/typescript/src/TJPlacement.d.ts +17 -0
- package/lib/typescript/src/TJPlacement.d.ts.map +1 -0
- package/lib/typescript/src/TJPrivacyPolicy.d.ts +8 -0
- package/lib/typescript/src/TJPrivacyPolicy.d.ts.map +1 -0
- package/lib/typescript/src/TJVersion.d.ts +5 -0
- package/lib/typescript/src/TJVersion.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +163 -0
- package/src/TJPlacement.ts +81 -0
- package/src/TJPrivacyPolicy.ts +23 -0
- package/src/TJVersion.ts +15 -0
- package/src/index.ts +24 -0
- package/tapjoy-react-native-sdk.podspec +36 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
2
|
+
import { EventEmitter } from 'eventemitter3';
|
|
3
|
+
|
|
4
|
+
const Tapjoy = NativeModules.TapjoyReactNativeSdk;
|
|
5
|
+
const TapjoyEmitter = new NativeEventEmitter(Tapjoy);
|
|
6
|
+
|
|
7
|
+
const TapjoyEventType = 'TapjoyPlacement';
|
|
8
|
+
|
|
9
|
+
interface TapjoyPlacementEvent {
|
|
10
|
+
name: string;
|
|
11
|
+
error: string;
|
|
12
|
+
placement: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class TJPlacement extends EventEmitter {
|
|
16
|
+
static readonly REQUEST_DID_SUCCEED = 'requestDidSucceed';
|
|
17
|
+
static readonly REQUEST_DID_FAIL = 'requestDidFail';
|
|
18
|
+
static readonly CONTENT_IS_READY = 'contentIsReady';
|
|
19
|
+
static readonly CONTENT_DID_APPEAR = 'contentDidAppear';
|
|
20
|
+
static readonly CONTENT_DID_DISAPPEAR = 'contentDidDisappear';
|
|
21
|
+
|
|
22
|
+
public name: string;
|
|
23
|
+
public error: string | undefined;
|
|
24
|
+
|
|
25
|
+
public constructor(name: string) {
|
|
26
|
+
super();
|
|
27
|
+
this.name = name;
|
|
28
|
+
this.error = undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
requestContent(): void {
|
|
32
|
+
var subscription = TapjoyEmitter.addListener(
|
|
33
|
+
TapjoyEventType,
|
|
34
|
+
(event: TapjoyPlacementEvent) => {
|
|
35
|
+
if (event.name === TJPlacement.REQUEST_DID_SUCCEED) {
|
|
36
|
+
// Remove listener if there is no content available.
|
|
37
|
+
if (!this.isContentAvailable()) {
|
|
38
|
+
subscription.remove();
|
|
39
|
+
}
|
|
40
|
+
this.emit(TJPlacement.REQUEST_DID_SUCCEED, this);
|
|
41
|
+
} else if (event.name === TJPlacement.REQUEST_DID_FAIL) {
|
|
42
|
+
// No more events expected, remove listener.
|
|
43
|
+
subscription.remove();
|
|
44
|
+
this.error = event.error;
|
|
45
|
+
this.emit(TJPlacement.REQUEST_DID_FAIL, this);
|
|
46
|
+
} else if (event.name === TJPlacement.CONTENT_IS_READY) {
|
|
47
|
+
// No more events expected, remove listener.
|
|
48
|
+
subscription.remove();
|
|
49
|
+
this.emit(TJPlacement.CONTENT_IS_READY, this);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
Tapjoy.requestPlacement(this.name);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
showContent(): void {
|
|
57
|
+
var subscription = TapjoyEmitter.addListener(
|
|
58
|
+
TapjoyEventType,
|
|
59
|
+
(event: TapjoyPlacementEvent) => {
|
|
60
|
+
if (event.name === TJPlacement.CONTENT_DID_APPEAR) {
|
|
61
|
+
this.emit(TJPlacement.CONTENT_DID_APPEAR, this);
|
|
62
|
+
} else if (event.name === TJPlacement.CONTENT_DID_DISAPPEAR) {
|
|
63
|
+
// No more events expected, remove listener.
|
|
64
|
+
subscription.remove();
|
|
65
|
+
this.emit(TJPlacement.CONTENT_DID_DISAPPEAR, this);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
Tapjoy.showPlacement(this.name);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
isContentReady(): boolean {
|
|
73
|
+
return Tapjoy.isContentReady(this.name);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
isContentAvailable(): boolean {
|
|
77
|
+
return Tapjoy.isContentAvailable(this.name);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export default TJPlacement;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
|
|
3
|
+
const Tapjoy = NativeModules.TapjoyReactNativeSdk;
|
|
4
|
+
|
|
5
|
+
class TJPrivacyPolicy {
|
|
6
|
+
setBelowConsentAge(isBelowConsentAge: boolean): void {
|
|
7
|
+
Tapjoy.setBelowConsentAge(isBelowConsentAge);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
setSubjectToGDPR(isSubjectToGDPR: boolean): void {
|
|
11
|
+
Tapjoy.setSubjectToGDPR(isSubjectToGDPR);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
setUSPrivacy(usPrivacy: string): void {
|
|
15
|
+
Tapjoy.setUSPrivacy(usPrivacy);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
setUserConsent(userConsent: string): void {
|
|
19
|
+
Tapjoy.setUserConsent(userConsent);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default TJPrivacyPolicy;
|
package/src/TJVersion.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const REACT_LIBRARY_VERSION = '1.0.0';
|
|
2
|
+
const REACT_LIBRARY_VERSION_SUFFIX = 'alpha-rc1';
|
|
3
|
+
|
|
4
|
+
export class TJVersion {
|
|
5
|
+
// Returns the version of the plugin - eg: 1.0.0-alpha-rc1
|
|
6
|
+
static getPluginVersion(): string {
|
|
7
|
+
if (REACT_LIBRARY_VERSION_SUFFIX) {
|
|
8
|
+
return REACT_LIBRARY_VERSION + '-' + REACT_LIBRARY_VERSION_SUFFIX;
|
|
9
|
+
} else {
|
|
10
|
+
return REACT_LIBRARY_VERSION;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default TJVersion;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
import TJPlacement from './TJPlacement';
|
|
3
|
+
import TJPrivacyPolicy from './TJPrivacyPolicy';
|
|
4
|
+
import TJVersion from './TJVersion';
|
|
5
|
+
|
|
6
|
+
const LINKING_ERROR =
|
|
7
|
+
`The package 'tapjoy-react-native-sdk' doesn't seem to be linked. Make sure: \n\n` +
|
|
8
|
+
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
9
|
+
'- You rebuilt the app after installing the package\n' +
|
|
10
|
+
'- You are not using Expo Go\n';
|
|
11
|
+
|
|
12
|
+
const Tapjoy = NativeModules.TapjoyReactNativeSdk
|
|
13
|
+
? NativeModules.TapjoyReactNativeSdk
|
|
14
|
+
: new Proxy(
|
|
15
|
+
{},
|
|
16
|
+
{
|
|
17
|
+
get() {
|
|
18
|
+
throw new Error(LINKING_ERROR);
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
export { Tapjoy, TJPlacement, TJPrivacyPolicy, TJVersion };
|
|
24
|
+
export default Tapjoy;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
5
|
+
|
|
6
|
+
Pod::Spec.new do |s|
|
|
7
|
+
s.name = "tapjoy-react-native-sdk"
|
|
8
|
+
s.version = package["version"]
|
|
9
|
+
s.summary = package["description"]
|
|
10
|
+
s.homepage = package["homepage"]
|
|
11
|
+
s.license = package["license"]
|
|
12
|
+
s.authors = package["author"]
|
|
13
|
+
|
|
14
|
+
s.platforms = { :ios => "11.0" }
|
|
15
|
+
s.source = { :git => "https://github.com/Tapjoy/ReactNative-Plugin.git", :tag => "#{s.version}" }
|
|
16
|
+
|
|
17
|
+
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
|
+
|
|
19
|
+
s.dependency "React-Core"
|
|
20
|
+
s.dependency "TapjoySDK", "13.0.1"
|
|
21
|
+
|
|
22
|
+
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
23
|
+
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
24
|
+
s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
|
|
25
|
+
s.pod_target_xcconfig = {
|
|
26
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
|
|
27
|
+
"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
|
|
28
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
|
|
29
|
+
}
|
|
30
|
+
s.dependency "React-Codegen"
|
|
31
|
+
s.dependency "RCT-Folly"
|
|
32
|
+
s.dependency "RCTRequired"
|
|
33
|
+
s.dependency "RCTTypeSafety"
|
|
34
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
35
|
+
end
|
|
36
|
+
end
|