react-native-applovin-max 6.5.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +46 -100
- package/android/gradle.properties +4 -4
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +123 -163
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +24 -17
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewUiComponent.java +242 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXModule.java +297 -336
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +13 -12
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +11 -14
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXPackage.java +3 -3
- package/ios/AppLovinMAX.h +1 -1
- package/ios/AppLovinMAX.m +62 -12
- package/ios/AppLovinMAXAdView.h +12 -0
- package/ios/AppLovinMAXAdView.m +120 -142
- package/ios/AppLovinMAXAdViewUIComponent.h +27 -0
- package/ios/AppLovinMAXAdViewUIComponent.m +199 -0
- package/lib/commonjs/AdView.js +348 -0
- package/lib/commonjs/AdView.js.map +1 -0
- package/lib/commonjs/AppLovinMAX.js +52 -0
- package/lib/commonjs/AppLovinMAX.js.map +1 -0
- package/lib/commonjs/AppOpenAd.js +102 -0
- package/lib/commonjs/AppOpenAd.js.map +1 -0
- package/lib/commonjs/BannerAd.js +139 -0
- package/lib/commonjs/BannerAd.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +32 -0
- package/lib/commonjs/EventEmitter.js.map +1 -0
- package/lib/commonjs/InterstitialAd.js +102 -0
- package/lib/commonjs/InterstitialAd.js.map +1 -0
- package/lib/commonjs/MRecAd.js +117 -0
- package/lib/commonjs/MRecAd.js.map +1 -0
- package/lib/commonjs/Privacy.js +12 -0
- package/lib/commonjs/Privacy.js.map +1 -0
- package/lib/commonjs/RewardedAd.js +116 -0
- package/lib/commonjs/RewardedAd.js.map +1 -0
- package/lib/commonjs/TargetingData.js +179 -0
- package/lib/commonjs/TargetingData.js.map +1 -0
- package/lib/commonjs/index.js +256 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdView.js +147 -0
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js +197 -0
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js +37 -0
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -0
- package/lib/commonjs/types/AdEvent.js +6 -0
- package/lib/commonjs/types/AdEvent.js.map +1 -0
- package/lib/commonjs/types/AdInfo.js +48 -0
- package/lib/commonjs/types/AdInfo.js.map +1 -0
- package/lib/commonjs/types/AdProps.js +6 -0
- package/lib/commonjs/types/AdProps.js.map +1 -0
- package/lib/commonjs/types/AdViewProps.js +6 -0
- package/lib/commonjs/types/AdViewProps.js.map +1 -0
- package/lib/commonjs/types/AppLovinMAX.js +6 -0
- package/lib/commonjs/types/AppLovinMAX.js.map +1 -0
- package/lib/commonjs/types/AppOpenAd.js +6 -0
- package/lib/commonjs/types/AppOpenAd.js.map +1 -0
- package/lib/commonjs/types/BannerAd.js +6 -0
- package/lib/commonjs/types/BannerAd.js.map +1 -0
- package/lib/commonjs/types/CMPError.js +6 -0
- package/lib/commonjs/types/CMPError.js.map +1 -0
- package/lib/commonjs/types/Configuration.js +6 -0
- package/lib/commonjs/types/Configuration.js.map +1 -0
- package/lib/commonjs/types/FullscreenAd.js +6 -0
- package/lib/commonjs/types/FullscreenAd.js.map +1 -0
- package/lib/commonjs/types/InterstitialAd.js +6 -0
- package/lib/commonjs/types/InterstitialAd.js.map +1 -0
- package/lib/commonjs/types/MRecAd.js +6 -0
- package/lib/commonjs/types/MRecAd.js.map +1 -0
- package/lib/commonjs/types/NativeAd.js +2 -0
- package/lib/commonjs/types/NativeAd.js.map +1 -0
- package/lib/commonjs/types/NativeAdViewProps.js +6 -0
- package/lib/commonjs/types/NativeAdViewProps.js.map +1 -0
- package/lib/commonjs/types/Privacy.js +2 -0
- package/lib/commonjs/types/Privacy.js.map +1 -0
- package/lib/commonjs/types/RewardedAd.js +6 -0
- package/lib/commonjs/types/RewardedAd.js.map +1 -0
- package/lib/commonjs/types/TargetingData.js +6 -0
- package/lib/commonjs/types/TargetingData.js.map +1 -0
- package/lib/commonjs/types/ViewAd.js +6 -0
- package/lib/commonjs/types/ViewAd.js.map +1 -0
- package/lib/commonjs/types/index.js +61 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/module/AdView.js +335 -0
- package/lib/module/AdView.js.map +1 -0
- package/lib/module/AppLovinMAX.js +48 -0
- package/lib/module/AppLovinMAX.js.map +1 -0
- package/lib/module/AppOpenAd.js +96 -0
- package/lib/module/AppOpenAd.js.map +1 -0
- package/lib/module/BannerAd.js +133 -0
- package/lib/module/BannerAd.js.map +1 -0
- package/lib/module/EventEmitter.js +24 -0
- package/lib/module/EventEmitter.js.map +1 -0
- package/lib/module/InterstitialAd.js +96 -0
- package/lib/module/InterstitialAd.js.map +1 -0
- package/lib/module/MRecAd.js +111 -0
- package/lib/module/MRecAd.js.map +1 -0
- package/lib/module/Privacy.js +6 -0
- package/lib/module/Privacy.js.map +1 -0
- package/lib/module/RewardedAd.js +110 -0
- package/lib/module/RewardedAd.js.map +1 -0
- package/lib/module/TargetingData.js +175 -0
- package/lib/module/TargetingData.js.map +1 -0
- package/lib/module/index.js +14 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/nativeAd/NativeAdView.js +139 -0
- package/lib/module/nativeAd/NativeAdView.js.map +1 -0
- package/lib/module/nativeAd/NativeAdViewComponents.js +181 -0
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -0
- package/lib/module/nativeAd/NativeAdViewProvider.js +28 -0
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -0
- package/lib/module/types/AdEvent.js +2 -0
- package/lib/module/types/AdEvent.js.map +1 -0
- package/lib/module/types/AdInfo.js +52 -0
- package/lib/module/types/AdInfo.js.map +1 -0
- package/lib/module/types/AdProps.js +2 -0
- package/lib/module/types/AdProps.js.map +1 -0
- package/lib/module/types/AdViewProps.js +2 -0
- package/lib/module/types/AdViewProps.js.map +1 -0
- package/lib/module/types/AppLovinMAX.js +2 -0
- package/lib/module/types/AppLovinMAX.js.map +1 -0
- package/lib/module/types/AppOpenAd.js +2 -0
- package/lib/module/types/AppOpenAd.js.map +1 -0
- package/lib/module/types/BannerAd.js +2 -0
- package/lib/module/types/BannerAd.js.map +1 -0
- package/lib/module/types/CMPError.js +2 -0
- package/lib/module/types/CMPError.js.map +1 -0
- package/lib/module/types/Configuration.js +2 -0
- package/lib/module/types/Configuration.js.map +1 -0
- package/lib/module/types/FullscreenAd.js +2 -0
- package/lib/module/types/FullscreenAd.js.map +1 -0
- package/lib/module/types/InterstitialAd.js +2 -0
- package/lib/module/types/InterstitialAd.js.map +1 -0
- package/lib/module/types/MRecAd.js +2 -0
- package/lib/module/types/MRecAd.js.map +1 -0
- package/lib/module/types/NativeAd.js +2 -0
- package/lib/module/types/NativeAd.js.map +1 -0
- package/lib/module/types/NativeAdViewProps.js +2 -0
- package/lib/module/types/NativeAdViewProps.js.map +1 -0
- package/lib/module/types/Privacy.js +2 -0
- package/lib/module/types/Privacy.js.map +1 -0
- package/lib/module/types/RewardedAd.js +2 -0
- package/lib/module/types/RewardedAd.js.map +1 -0
- package/lib/module/types/TargetingData.js +2 -0
- package/lib/module/types/TargetingData.js.map +1 -0
- package/lib/module/types/ViewAd.js +2 -0
- package/lib/module/types/ViewAd.js.map +1 -0
- package/lib/module/types/index.js +6 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/typescript/src/AdView.d.ts +115 -0
- package/lib/typescript/src/AdView.d.ts.map +1 -0
- package/lib/typescript/src/AppLovinMAX.d.ts +73 -0
- package/lib/typescript/src/AppLovinMAX.d.ts.map +1 -0
- package/lib/typescript/src/AppOpenAd.d.ts +4 -0
- package/lib/typescript/src/AppOpenAd.d.ts.map +1 -0
- package/lib/typescript/src/BannerAd.d.ts +4 -0
- package/lib/typescript/src/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts +4 -0
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/src/InterstitialAd.d.ts +4 -0
- package/lib/typescript/src/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/MRecAd.d.ts +4 -0
- package/lib/typescript/src/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/Privacy.d.ts +3 -0
- package/lib/typescript/src/Privacy.d.ts.map +1 -0
- package/lib/typescript/src/RewardedAd.d.ts +4 -0
- package/lib/typescript/src/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/TargetingData.d.ts +26 -0
- package/lib/typescript/src/TargetingData.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +14 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts +42 -0
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts +11 -0
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +16 -0
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +15 -0
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AdInfo.d.ts +295 -0
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -0
- package/lib/typescript/src/types/AdProps.d.ts +58 -0
- package/lib/typescript/src/types/AdProps.d.ts.map +1 -0
- package/lib/typescript/src/types/AdViewProps.d.ts +73 -0
- package/lib/typescript/src/types/AdViewProps.d.ts.map +1 -0
- package/lib/typescript/src/types/AppLovinMAX.d.ts +133 -0
- package/lib/typescript/src/types/AppLovinMAX.d.ts.map +1 -0
- package/lib/typescript/src/types/AppOpenAd.d.ts +3 -0
- package/lib/typescript/src/types/AppOpenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/BannerAd.d.ts +42 -0
- package/lib/typescript/src/types/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/types/CMPError.d.ts +20 -0
- package/lib/typescript/src/types/CMPError.d.ts.map +1 -0
- package/lib/typescript/src/types/Configuration.d.ts +33 -0
- package/lib/typescript/src/types/Configuration.d.ts.map +1 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts +123 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/InterstitialAd.d.ts +3 -0
- package/lib/typescript/src/types/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/types/MRecAd.d.ts +12 -0
- package/lib/typescript/src/types/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/types/NativeAd.d.ts +42 -0
- package/lib/typescript/src/types/NativeAd.d.ts.map +1 -0
- package/lib/typescript/src/types/NativeAdViewProps.d.ts +15 -0
- package/lib/typescript/src/types/NativeAdViewProps.d.ts.map +1 -0
- package/lib/typescript/src/types/Privacy.d.ts +35 -0
- package/lib/typescript/src/types/Privacy.d.ts.map +1 -0
- package/lib/typescript/src/types/RewardedAd.d.ts +18 -0
- package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/types/TargetingData.d.ts +43 -0
- package/lib/typescript/src/types/TargetingData.d.ts.map +1 -0
- package/lib/typescript/src/types/ViewAd.d.ts +141 -0
- package/lib/typescript/src/types/ViewAd.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +6 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/package.json +102 -21
- package/react-native-applovin-max.podspec +29 -5
- package/src/AdView.tsx +83 -26
- package/src/AppLovinMAX.ts +1 -1
- package/src/InterstitialAd.ts +1 -3
- package/src/MRecAd.ts +2 -8
- package/src/TargetingData.ts +2 -15
- package/src/index.ts +9 -10
- package/src/nativeAd/NativeAdView.tsx +33 -49
- package/src/nativeAd/NativeAdViewComponents.tsx +22 -31
- package/src/types/AdViewProps.ts +29 -1
- package/android/.project +0 -17
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/ios/AppLovinMAX.xcodeproj/project.pbxproj +0 -368
- package/ios/AppLovinMAX.xcodeproj/xcshareddata/xcschemes/AppLovinMAX.xcscheme +0 -67
- package/ios/AppLovinMAX.xcworkspace/contents.xcworkspacedata +0 -10
- package/ios/AppLovinMAX.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/Podfile +0 -40
- package/ios/Podfile.lock +0 -373
package/android/build.gradle
CHANGED
|
@@ -1,65 +1,72 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
-
ext.versions = [
|
|
3
|
-
'minSdk' : 21,
|
|
4
|
-
'compileSdk' : 29,
|
|
5
|
-
'targetSdk' : 29,
|
|
6
|
-
'playServicesIdentifier': "16.0.0",
|
|
7
|
-
"exoplayer" : "2.12.1"
|
|
8
|
-
]
|
|
9
|
-
|
|
10
2
|
repositories {
|
|
11
3
|
google()
|
|
12
4
|
mavenCentral()
|
|
13
5
|
}
|
|
14
6
|
|
|
15
7
|
dependencies {
|
|
16
|
-
classpath
|
|
17
|
-
|
|
18
|
-
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.0"
|
|
8
|
+
classpath "com.android.tools.build:gradle:8.3.0"
|
|
19
9
|
}
|
|
20
10
|
}
|
|
21
11
|
|
|
22
|
-
|
|
12
|
+
def isNewArchitectureEnabled() {
|
|
13
|
+
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
apply plugin: "com.android.library"
|
|
17
|
+
|
|
18
|
+
if (isNewArchitectureEnabled()) {
|
|
19
|
+
apply plugin: "com.facebook.react"
|
|
20
|
+
}
|
|
23
21
|
|
|
24
22
|
def getExtOrDefault(name) {
|
|
25
|
-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties[
|
|
23
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ApplovinMax_" + name]
|
|
26
24
|
}
|
|
27
25
|
|
|
28
26
|
def getExtOrIntegerDefault(name) {
|
|
29
|
-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties[
|
|
27
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ApplovinMax_" + name]).toInteger()
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
def supportsNamespace() {
|
|
31
|
+
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
|
32
|
+
def major = parsed[0].toInteger()
|
|
33
|
+
def minor = parsed[1].toInteger()
|
|
34
|
+
|
|
35
|
+
// Namespace support was added in 7.3.0
|
|
36
|
+
return (major == 7 && minor >= 3) || major >= 8
|
|
30
37
|
}
|
|
31
38
|
|
|
32
39
|
android {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
defaultConfig {
|
|
36
|
-
minSdkVersion 16
|
|
37
|
-
targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
|
|
38
|
-
versionCode 6050000
|
|
39
|
-
versionName "6.5.0"
|
|
40
|
-
}
|
|
40
|
+
if (supportsNamespace()) {
|
|
41
|
+
namespace "com.applovin.reactnative"
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (findProject(':Android-SDK') != null) {
|
|
46
|
-
create("standalone") {
|
|
47
|
-
buildConfigField("boolean", "IS_TEST_APP", "false")
|
|
48
|
-
}
|
|
49
|
-
create("app") {
|
|
50
|
-
buildConfigField("boolean", "IS_TEST_APP", "true")
|
|
43
|
+
sourceSets {
|
|
44
|
+
main {
|
|
45
|
+
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
|
51
46
|
}
|
|
52
47
|
}
|
|
53
48
|
}
|
|
54
49
|
|
|
50
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
51
|
+
|
|
52
|
+
defaultConfig {
|
|
53
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
54
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
55
|
+
|
|
56
|
+
buildConfigField("int", "VERSION_CODE", "7000100")
|
|
57
|
+
buildConfigField("String", "VERSION_NAME", "\"7.0.1\"")
|
|
58
|
+
}
|
|
59
|
+
|
|
55
60
|
buildTypes {
|
|
56
61
|
release {
|
|
57
62
|
minifyEnabled false
|
|
58
63
|
}
|
|
59
64
|
}
|
|
65
|
+
|
|
60
66
|
lintOptions {
|
|
61
|
-
disable
|
|
67
|
+
disable "GradleCompatible"
|
|
62
68
|
}
|
|
69
|
+
|
|
63
70
|
compileOptions {
|
|
64
71
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
65
72
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
@@ -69,76 +76,15 @@ android {
|
|
|
69
76
|
repositories {
|
|
70
77
|
mavenCentral()
|
|
71
78
|
google()
|
|
72
|
-
|
|
73
|
-
def found = false
|
|
74
|
-
def defaultDir = null
|
|
75
|
-
def androidSourcesName = 'React Native sources'
|
|
76
|
-
|
|
77
|
-
if (rootProject.ext.has('reactNativeAndroidRoot')) {
|
|
78
|
-
defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
|
|
79
|
-
} else {
|
|
80
|
-
defaultDir = new File(
|
|
81
|
-
projectDir,
|
|
82
|
-
'/../../../node_modules/react-native/android'
|
|
83
|
-
)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (defaultDir.exists()) {
|
|
87
|
-
maven {
|
|
88
|
-
url defaultDir.toString()
|
|
89
|
-
name androidSourcesName
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${defaultDir.canonicalPath}")
|
|
93
|
-
found = true
|
|
94
|
-
} else {
|
|
95
|
-
def parentDir = rootProject.projectDir
|
|
96
|
-
|
|
97
|
-
1.upto(5, {
|
|
98
|
-
if (found) return true
|
|
99
|
-
parentDir = parentDir.parentFile
|
|
100
|
-
|
|
101
|
-
def androidSourcesDir = new File(
|
|
102
|
-
parentDir,
|
|
103
|
-
'node_modules/react-native'
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
def androidPrebuiltBinaryDir = new File(
|
|
107
|
-
parentDir,
|
|
108
|
-
'node_modules/react-native/android'
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
if (androidPrebuiltBinaryDir.exists()) {
|
|
112
|
-
maven {
|
|
113
|
-
url androidPrebuiltBinaryDir.toString()
|
|
114
|
-
name androidSourcesName
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidPrebuiltBinaryDir.canonicalPath}")
|
|
118
|
-
found = true
|
|
119
|
-
} else if (androidSourcesDir.exists()) {
|
|
120
|
-
maven {
|
|
121
|
-
url androidSourcesDir.toString()
|
|
122
|
-
name androidSourcesName
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
logger.info(":${project.name}:reactNativeAndroidRoot ${androidSourcesDir.canonicalPath}")
|
|
126
|
-
found = true
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (!found) {
|
|
132
|
-
throw new GradleException(
|
|
133
|
-
"${project.name}: unable to locate React Native android sources. " +
|
|
134
|
-
"Ensure you have you installed React Native as a dependency in your project and try again."
|
|
135
|
-
)
|
|
136
|
-
}
|
|
137
79
|
}
|
|
138
80
|
|
|
81
|
+
|
|
139
82
|
dependencies {
|
|
140
|
-
//
|
|
141
|
-
|
|
83
|
+
// For < 0.71, this will be from the local maven repo
|
|
84
|
+
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
85
|
+
//noinspection GradleDynamicVersion
|
|
86
|
+
implementation "com.facebook.react:react-native:0.73.6"
|
|
142
87
|
|
|
143
|
-
implementation
|
|
88
|
+
implementation "com.applovin:applovin-sdk:12.5.0"
|
|
144
89
|
}
|
|
90
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
ApplovinMax_minSdkVersion=21
|
|
2
|
+
ApplovinMax_targetSdkVersion=34
|
|
3
|
+
ApplovinMax_compileSdkVersion=34
|
|
4
4
|
|
|
5
5
|
# To bypass an error from the `io.codearte.nexus-staging` plugin requiring it to be applied to base build.gradle
|
|
6
|
-
gnsp.disableApplyOnlyOnRootProjectEnforcement=true
|
|
6
|
+
gnsp.disableApplyOnlyOnRootProjectEnforcement=true
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<manifest
|
|
2
|
-
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
|
+
package="com.applovin.reactnative">
|
|
3
3
|
</manifest>
|
|
@@ -3,17 +3,11 @@ package com.applovin.reactnative;
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.text.TextUtils;
|
|
5
5
|
|
|
6
|
-
import com.applovin.mediation.MaxAd;
|
|
7
6
|
import com.applovin.mediation.MaxAdFormat;
|
|
8
|
-
import com.applovin.mediation.MaxAdListener;
|
|
9
|
-
import com.applovin.mediation.MaxAdRevenueListener;
|
|
10
|
-
import com.applovin.mediation.MaxAdViewAdListener;
|
|
11
|
-
import com.applovin.mediation.MaxError;
|
|
12
7
|
import com.applovin.mediation.ads.MaxAdView;
|
|
8
|
+
import com.facebook.react.bridge.Promise;
|
|
9
|
+
import com.facebook.react.bridge.ReactContext;
|
|
13
10
|
import com.facebook.react.bridge.ReadableMap;
|
|
14
|
-
import com.facebook.react.bridge.WritableMap;
|
|
15
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
16
|
-
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
17
11
|
import com.facebook.react.views.view.ReactViewGroup;
|
|
18
12
|
|
|
19
13
|
import java.util.HashMap;
|
|
@@ -25,15 +19,15 @@ import androidx.annotation.Nullable;
|
|
|
25
19
|
* Created by Thomas So on September 27 2020
|
|
26
20
|
*/
|
|
27
21
|
class AppLovinMAXAdView
|
|
28
|
-
|
|
29
|
-
implements MaxAdListener, MaxAdViewAdListener, MaxAdRevenueListener
|
|
22
|
+
extends ReactViewGroup
|
|
30
23
|
{
|
|
31
|
-
private static final Map<String,
|
|
24
|
+
private static final Map<String, AppLovinMAXAdViewUiComponent> uiComponentInstances = new HashMap<>( 2 );
|
|
25
|
+
private static final Map<String, AppLovinMAXAdViewUiComponent> preloadedUiComponentInstances = new HashMap<>( 2 );
|
|
32
26
|
|
|
33
|
-
private final
|
|
27
|
+
private final ReactContext reactContext;
|
|
34
28
|
|
|
35
29
|
@Nullable
|
|
36
|
-
private
|
|
30
|
+
private AppLovinMAXAdViewUiComponent uiComponent;
|
|
37
31
|
|
|
38
32
|
private String adUnitId;
|
|
39
33
|
private MaxAdFormat adFormat;
|
|
@@ -51,35 +45,80 @@ class AppLovinMAXAdView
|
|
|
51
45
|
|
|
52
46
|
public static MaxAdView getInstance(final String adUnitId)
|
|
53
47
|
{
|
|
54
|
-
|
|
48
|
+
AppLovinMAXAdViewUiComponent uiComponent = preloadedUiComponentInstances.get( adUnitId );
|
|
49
|
+
if ( uiComponent == null ) uiComponent = uiComponentInstances.get( adUnitId );
|
|
50
|
+
return ( uiComponent != null ) ? uiComponent.getAdView() : null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public static void preloadNativeUIComponentAdView(final String adUnitId, final MaxAdFormat adFormat, final String placement, final String customData, final Map<String, Object> extraParameters, final Map<String, Object> localExtraParameters, final Promise promise, final ReactContext context)
|
|
54
|
+
{
|
|
55
|
+
AppLovinMAXAdViewUiComponent preloadedUiComponent = preloadedUiComponentInstances.get( adUnitId );
|
|
56
|
+
if ( preloadedUiComponent != null )
|
|
57
|
+
{
|
|
58
|
+
promise.reject( new IllegalStateException( "Cannot preload more than one for a single Ad Unit ID" ) );
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
preloadedUiComponent = new AppLovinMAXAdViewUiComponent( adUnitId, adFormat, context );
|
|
63
|
+
preloadedUiComponentInstances.put( adUnitId, preloadedUiComponent );
|
|
64
|
+
|
|
65
|
+
preloadedUiComponent.setPlacement( placement );
|
|
66
|
+
preloadedUiComponent.setCustomData( customData );
|
|
67
|
+
preloadedUiComponent.setExtraParameters( extraParameters );
|
|
68
|
+
preloadedUiComponent.setLocalExtraParameters( localExtraParameters );
|
|
69
|
+
|
|
70
|
+
preloadedUiComponent.loadAd();
|
|
71
|
+
|
|
72
|
+
promise.resolve( null );
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public static void destroyNativeUIComponentAdView(final String adUnitId, final Promise promise)
|
|
76
|
+
{
|
|
77
|
+
AppLovinMAXAdViewUiComponent preloadedUiComponent = preloadedUiComponentInstances.get( adUnitId );
|
|
78
|
+
if ( preloadedUiComponent == null )
|
|
79
|
+
{
|
|
80
|
+
promise.reject( new IllegalStateException( "No native UI component found to destroy" ) );
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if ( preloadedUiComponent.hasContainerView() )
|
|
85
|
+
{
|
|
86
|
+
promise.reject( new IllegalStateException( "Cannot destroy - currently in use" ) );
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
preloadedUiComponentInstances.remove( adUnitId );
|
|
91
|
+
|
|
92
|
+
preloadedUiComponent.detachAdView();
|
|
93
|
+
preloadedUiComponent.destroy();
|
|
94
|
+
|
|
95
|
+
promise.resolve( null );
|
|
55
96
|
}
|
|
56
97
|
|
|
57
98
|
public AppLovinMAXAdView(final Context context)
|
|
58
99
|
{
|
|
59
100
|
super( context );
|
|
60
|
-
reactContext = (
|
|
101
|
+
reactContext = (ReactContext) context;
|
|
61
102
|
}
|
|
62
103
|
|
|
63
104
|
public void setAdUnitId(final String value)
|
|
64
105
|
{
|
|
65
106
|
// Ad Unit ID must be set prior to creating MaxAdView
|
|
66
|
-
if (
|
|
107
|
+
if ( uiComponent != null )
|
|
67
108
|
{
|
|
68
|
-
AppLovinMAXModule.e( "Attempting to set Ad Unit ID " + value + " after
|
|
109
|
+
AppLovinMAXModule.e( "Attempting to set Ad Unit ID " + value + " after the native UI component is created" );
|
|
69
110
|
return;
|
|
70
111
|
}
|
|
71
112
|
|
|
72
113
|
adUnitId = value;
|
|
73
|
-
|
|
74
|
-
maybeAttachAdView();
|
|
75
114
|
}
|
|
76
115
|
|
|
77
116
|
public void setAdFormat(final String value)
|
|
78
117
|
{
|
|
79
118
|
// Ad format must be set prior to creating MaxAdView
|
|
80
|
-
if (
|
|
119
|
+
if ( uiComponent != null )
|
|
81
120
|
{
|
|
82
|
-
AppLovinMAXModule.e( "Attempting to set ad format " + value + " after
|
|
121
|
+
AppLovinMAXModule.e( "Attempting to set ad format " + value + " after the native UI component is created" );
|
|
83
122
|
return;
|
|
84
123
|
}
|
|
85
124
|
|
|
@@ -94,19 +133,16 @@ class AppLovinMAXAdView
|
|
|
94
133
|
else
|
|
95
134
|
{
|
|
96
135
|
AppLovinMAXModule.e( "Attempting to set an invalid ad format of \"" + value + "\" for " + adUnitId );
|
|
97
|
-
return;
|
|
98
136
|
}
|
|
99
|
-
|
|
100
|
-
maybeAttachAdView();
|
|
101
137
|
}
|
|
102
138
|
|
|
103
139
|
public void setPlacement(@Nullable final String value)
|
|
104
140
|
{
|
|
105
141
|
placement = value;
|
|
106
142
|
|
|
107
|
-
if (
|
|
143
|
+
if ( uiComponent != null )
|
|
108
144
|
{
|
|
109
|
-
|
|
145
|
+
uiComponent.setPlacement( placement );
|
|
110
146
|
}
|
|
111
147
|
}
|
|
112
148
|
|
|
@@ -114,9 +150,9 @@ class AppLovinMAXAdView
|
|
|
114
150
|
{
|
|
115
151
|
customData = value;
|
|
116
152
|
|
|
117
|
-
if (
|
|
153
|
+
if ( uiComponent != null )
|
|
118
154
|
{
|
|
119
|
-
|
|
155
|
+
uiComponent.setCustomData( customData );
|
|
120
156
|
}
|
|
121
157
|
}
|
|
122
158
|
|
|
@@ -124,9 +160,9 @@ class AppLovinMAXAdView
|
|
|
124
160
|
{
|
|
125
161
|
adaptiveBannerEnabled = enabled;
|
|
126
162
|
|
|
127
|
-
if (
|
|
163
|
+
if ( uiComponent != null )
|
|
128
164
|
{
|
|
129
|
-
|
|
165
|
+
uiComponent.setAdaptiveBannerEnabled( adaptiveBannerEnabled );
|
|
130
166
|
}
|
|
131
167
|
}
|
|
132
168
|
|
|
@@ -134,16 +170,9 @@ class AppLovinMAXAdView
|
|
|
134
170
|
{
|
|
135
171
|
autoRefresh = enabled;
|
|
136
172
|
|
|
137
|
-
if (
|
|
173
|
+
if ( uiComponent != null )
|
|
138
174
|
{
|
|
139
|
-
|
|
140
|
-
{
|
|
141
|
-
adView.startAutoRefresh();
|
|
142
|
-
}
|
|
143
|
-
else
|
|
144
|
-
{
|
|
145
|
-
adView.stopAutoRefresh();
|
|
146
|
-
}
|
|
175
|
+
uiComponent.setAutoRefresh( enabled );
|
|
147
176
|
}
|
|
148
177
|
}
|
|
149
178
|
|
|
@@ -173,18 +202,9 @@ class AppLovinMAXAdView
|
|
|
173
202
|
{
|
|
174
203
|
super.requestLayout();
|
|
175
204
|
|
|
176
|
-
|
|
177
|
-
// This is required to ensure ad refreshes render correctly in RN Android due to known issue where `getWidth()` and `getHeight()` return 0 on attach
|
|
178
|
-
if ( adView != null )
|
|
205
|
+
if ( uiComponent != null )
|
|
179
206
|
{
|
|
180
|
-
|
|
181
|
-
int currentHeightPx = getHeight();
|
|
182
|
-
|
|
183
|
-
adView.measure(
|
|
184
|
-
MeasureSpec.makeMeasureSpec( currentWidthPx, MeasureSpec.EXACTLY ),
|
|
185
|
-
MeasureSpec.makeMeasureSpec( currentHeightPx, MeasureSpec.EXACTLY )
|
|
186
|
-
);
|
|
187
|
-
adView.layout( 0, 0, currentWidthPx, currentHeightPx );
|
|
207
|
+
uiComponent.measureAndLayout( 0, 0, getWidth(), getHeight() );
|
|
188
208
|
}
|
|
189
209
|
}
|
|
190
210
|
|
|
@@ -193,9 +213,9 @@ class AppLovinMAXAdView
|
|
|
193
213
|
{
|
|
194
214
|
super.onDetachedFromWindow();
|
|
195
215
|
|
|
196
|
-
if (
|
|
216
|
+
if ( uiComponent != null )
|
|
197
217
|
{
|
|
198
|
-
|
|
218
|
+
uiComponent.setAutoRefresh( false );
|
|
199
219
|
}
|
|
200
220
|
}
|
|
201
221
|
|
|
@@ -204,20 +224,26 @@ class AppLovinMAXAdView
|
|
|
204
224
|
{
|
|
205
225
|
super.onAttachedToWindow();
|
|
206
226
|
|
|
207
|
-
if (
|
|
227
|
+
if ( uiComponent != null )
|
|
208
228
|
{
|
|
209
|
-
|
|
229
|
+
uiComponent.setAutoRefresh( autoRefresh );
|
|
210
230
|
}
|
|
211
231
|
}
|
|
212
232
|
|
|
233
|
+
// Invoked via ViewManager.onAfterUpdateTransaction() after all the JavaScript properties are
|
|
234
|
+
// set when mounting AdView
|
|
235
|
+
public void onSetProps()
|
|
236
|
+
{
|
|
237
|
+
maybeAttachAdView();
|
|
238
|
+
}
|
|
239
|
+
|
|
213
240
|
private void maybeAttachAdView()
|
|
214
241
|
{
|
|
215
242
|
// Re-assign in case of race condition
|
|
216
243
|
final String adUnitId = this.adUnitId;
|
|
217
244
|
final MaxAdFormat adFormat = this.adFormat;
|
|
218
245
|
|
|
219
|
-
|
|
220
|
-
postDelayed( () -> {
|
|
246
|
+
reactContext.runOnUiQueueThread( () -> {
|
|
221
247
|
|
|
222
248
|
if ( AppLovinMAXModule.getInstance().getSdk() == null )
|
|
223
249
|
{
|
|
@@ -227,152 +253,86 @@ class AppLovinMAXAdView
|
|
|
227
253
|
|
|
228
254
|
if ( TextUtils.isEmpty( adUnitId ) )
|
|
229
255
|
{
|
|
230
|
-
AppLovinMAXModule.e( "Attempting to attach
|
|
256
|
+
AppLovinMAXModule.e( "Attempting to attach a native UI component without Ad Unit ID" );
|
|
231
257
|
return;
|
|
232
258
|
}
|
|
233
259
|
|
|
234
260
|
if ( adFormat == null )
|
|
235
261
|
{
|
|
236
|
-
AppLovinMAXModule.e( "Attempting to attach
|
|
262
|
+
AppLovinMAXModule.e( "Attempting to attach a native UI component without ad format" );
|
|
237
263
|
return;
|
|
238
264
|
}
|
|
239
265
|
|
|
240
|
-
if (
|
|
266
|
+
if ( uiComponent != null )
|
|
241
267
|
{
|
|
242
|
-
AppLovinMAXModule.e( "Attempting to re-attach with existing
|
|
268
|
+
AppLovinMAXModule.e( "Attempting to re-attach with existing native UI component: " + uiComponent.getAdView() );
|
|
243
269
|
return;
|
|
244
270
|
}
|
|
245
271
|
|
|
246
|
-
AppLovinMAXModule.d( "Attaching
|
|
272
|
+
AppLovinMAXModule.d( "Attaching a native UI component for " + adUnitId );
|
|
247
273
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
adView.setRevenueListener( this );
|
|
251
|
-
adView.setPlacement( placement );
|
|
252
|
-
adView.setCustomData( customData );
|
|
253
|
-
adView.setExtraParameter( "adaptive_banner", Boolean.toString( adaptiveBannerEnabled ) );
|
|
254
|
-
// Set this extra parameter to work around a SDK bug that ignores calls to stopAutoRefresh()
|
|
255
|
-
adView.setExtraParameter( "allow_pause_auto_refresh_immediately", "true" );
|
|
256
|
-
|
|
257
|
-
if ( extraParameters != null )
|
|
274
|
+
uiComponent = preloadedUiComponentInstances.get( adUnitId );
|
|
275
|
+
if ( uiComponent != null )
|
|
258
276
|
{
|
|
259
|
-
|
|
277
|
+
// Attach the preloaded uiComponent if possible, otherwise create a new one for the
|
|
278
|
+
// same adUnitId
|
|
279
|
+
if ( !uiComponent.hasContainerView() )
|
|
260
280
|
{
|
|
261
|
-
|
|
281
|
+
uiComponent.setAutoRefresh( autoRefresh );
|
|
282
|
+
uiComponent.attachAdView( AppLovinMAXAdView.this );
|
|
283
|
+
return;
|
|
262
284
|
}
|
|
263
285
|
}
|
|
264
286
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
for ( Map.Entry<String, Object> entry : localExtraParameters.entrySet() )
|
|
268
|
-
{
|
|
269
|
-
adView.setLocalExtraParameter( entry.getKey(), entry.getValue() );
|
|
270
|
-
}
|
|
271
|
-
}
|
|
287
|
+
uiComponent = new AppLovinMAXAdViewUiComponent( adUnitId, adFormat, reactContext );
|
|
288
|
+
uiComponentInstances.put( adUnitId, uiComponent );
|
|
272
289
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
290
|
+
uiComponent.setPlacement( placement );
|
|
291
|
+
uiComponent.setCustomData( customData );
|
|
292
|
+
uiComponent.setExtraParameters( extraParameters );
|
|
293
|
+
uiComponent.setLocalExtraParameters( localExtraParameters );
|
|
294
|
+
uiComponent.setAdaptiveBannerEnabled( adaptiveBannerEnabled );
|
|
295
|
+
uiComponent.setAutoRefresh( autoRefresh );
|
|
296
|
+
|
|
297
|
+
uiComponent.attachAdView( AppLovinMAXAdView.this );
|
|
281
298
|
|
|
282
299
|
if ( loadOnMount )
|
|
283
300
|
{
|
|
284
|
-
|
|
301
|
+
uiComponent.loadAd();
|
|
285
302
|
}
|
|
286
|
-
|
|
287
|
-
addView( adView );
|
|
288
|
-
|
|
289
|
-
adViewInstances.put( adUnitId, adView );
|
|
290
|
-
}, 250 );
|
|
303
|
+
} );
|
|
291
304
|
}
|
|
292
305
|
|
|
293
306
|
public void loadAd()
|
|
294
307
|
{
|
|
295
|
-
if (
|
|
308
|
+
if ( uiComponent == null )
|
|
296
309
|
{
|
|
297
|
-
AppLovinMAXModule.e( "Attempting to load uninitialized
|
|
310
|
+
AppLovinMAXModule.e( "Attempting to load uninitialized native UI component for " + adUnitId );
|
|
298
311
|
return;
|
|
299
312
|
}
|
|
300
313
|
|
|
301
|
-
|
|
314
|
+
uiComponent.loadAd();
|
|
302
315
|
}
|
|
303
316
|
|
|
304
317
|
public void destroy()
|
|
305
318
|
{
|
|
306
|
-
if (
|
|
319
|
+
if ( uiComponent != null )
|
|
307
320
|
{
|
|
308
|
-
AppLovinMAXModule.d( "Unmounting
|
|
309
|
-
|
|
310
|
-
adViewInstances.remove( adView.getAdUnitId() );
|
|
321
|
+
AppLovinMAXModule.d( "Unmounting the native UI component: " + uiComponent.getAdView() );
|
|
311
322
|
|
|
312
|
-
|
|
323
|
+
uiComponent.detachAdView();
|
|
313
324
|
|
|
314
|
-
|
|
315
|
-
adView.setRevenueListener( null );
|
|
316
|
-
adView.destroy();
|
|
325
|
+
AppLovinMAXAdViewUiComponent preloadedUiComponent = preloadedUiComponentInstances.get( adUnitId );
|
|
317
326
|
|
|
318
|
-
|
|
327
|
+
if ( uiComponent == preloadedUiComponent )
|
|
328
|
+
{
|
|
329
|
+
uiComponent.setAutoRefresh( false );
|
|
330
|
+
}
|
|
331
|
+
else
|
|
332
|
+
{
|
|
333
|
+
uiComponentInstances.remove( adUnitId );
|
|
334
|
+
uiComponent.destroy();
|
|
335
|
+
}
|
|
319
336
|
}
|
|
320
337
|
}
|
|
321
|
-
|
|
322
|
-
@Override
|
|
323
|
-
public void onAdLoaded(final MaxAd ad)
|
|
324
|
-
{
|
|
325
|
-
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
326
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdLoadedEvent", adInfo );
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
@Override
|
|
330
|
-
public void onAdLoadFailed(final String adUnitId, final MaxError error)
|
|
331
|
-
{
|
|
332
|
-
WritableMap adLoadFailedInfo = AppLovinMAXModule.getInstance().getAdLoadFailedInfo( adUnitId, error );
|
|
333
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdLoadFailedEvent", adLoadFailedInfo );
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
@Override
|
|
337
|
-
public void onAdDisplayFailed(final MaxAd ad, final MaxError error)
|
|
338
|
-
{
|
|
339
|
-
WritableMap adDisplayFailedInfo = AppLovinMAXModule.getInstance().getAdDisplayFailedInfo( ad, error );
|
|
340
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdDisplayFailedEvent", adDisplayFailedInfo );
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
@Override
|
|
344
|
-
public void onAdClicked(final MaxAd ad)
|
|
345
|
-
{
|
|
346
|
-
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
347
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdClickedEvent", adInfo );
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
@Override
|
|
351
|
-
public void onAdExpanded(final MaxAd ad)
|
|
352
|
-
{
|
|
353
|
-
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
354
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdExpandedEvent", adInfo );
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
@Override
|
|
358
|
-
public void onAdCollapsed(final MaxAd ad)
|
|
359
|
-
{
|
|
360
|
-
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
361
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdCollapsedEvent", adInfo );
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
@Override
|
|
365
|
-
public void onAdRevenuePaid(final MaxAd ad)
|
|
366
|
-
{
|
|
367
|
-
WritableMap adRevenueInfo = AppLovinMAXModule.getInstance().getAdRevenueInfo( ad );
|
|
368
|
-
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdRevenuePaidEvent", adRevenueInfo );
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
/// Deprecated Callbacks
|
|
372
|
-
|
|
373
|
-
@Override
|
|
374
|
-
public void onAdDisplayed(final MaxAd ad) { }
|
|
375
|
-
|
|
376
|
-
@Override
|
|
377
|
-
public void onAdHidden(final MaxAd ad) { }
|
|
378
338
|
}
|