react-native-applovin-max 8.1.1 → 9.0.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 +14 -3
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +33 -26
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManagerImpl.java +110 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewUiComponent.java +17 -15
- package/android/src/main/java/com/applovin/reactnative/{AppLovinMAXModule.java → AppLovinMAXModuleImpl.java} +115 -179
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +84 -56
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManagerImpl.java +101 -0
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXPackage.java +44 -11
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXUtils.java +56 -0
- package/android/src/newarch/com/applovin/reactnative/AppLovinMAXAdViewManager.java +151 -0
- package/android/src/newarch/com/applovin/reactnative/AppLovinMAXModule.java +453 -0
- package/android/src/newarch/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +130 -0
- package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXAdViewManager.java +128 -0
- package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXModule.java +453 -0
- package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +93 -0
- package/ios/AppLovinMAX.h +8 -8
- package/ios/{AppLovinMAX.m → AppLovinMAX.mm} +73 -64
- package/ios/AppLovinMAXAdView.h +7 -2
- package/ios/AppLovinMAXAdView.mm +747 -0
- package/ios/{AppLovinMAXAdViewManager.m → AppLovinMAXAdViewManager.mm} +3 -2
- package/ios/{AppLovinMAXAdViewUIComponent.m → AppLovinMAXAdViewUIComponent.mm} +2 -1
- package/ios/AppLovinMAXNativeAdView.h +15 -4
- package/ios/AppLovinMAXNativeAdView.mm +745 -0
- package/ios/AppLovinMAXNativeAdViewManager.mm +116 -0
- package/lib/commonjs/AdView.js +67 -85
- package/lib/commonjs/AdView.js.map +1 -1
- package/lib/commonjs/AppLovinMAX.js +51 -10
- package/lib/commonjs/AppLovinMAX.js.map +1 -1
- package/lib/commonjs/AppOpenAd.js +8 -10
- package/lib/commonjs/AppOpenAd.js.map +1 -1
- package/lib/commonjs/BannerAd.js +19 -21
- package/lib/commonjs/BannerAd.js.map +1 -1
- package/lib/commonjs/ErrorCode.js +57 -5
- package/lib/commonjs/ErrorCode.js.map +1 -1
- package/lib/commonjs/EventEmitter.js +3 -5
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/InterstitialAd.js +8 -10
- package/lib/commonjs/InterstitialAd.js.map +1 -1
- package/lib/commonjs/MRecAd.js +14 -16
- package/lib/commonjs/MRecAd.js.map +1 -1
- package/lib/commonjs/Privacy.js +3 -5
- package/lib/commonjs/Privacy.js.map +1 -1
- package/lib/commonjs/RewardedAd.js +8 -10
- package/lib/commonjs/RewardedAd.js.map +1 -1
- package/lib/commonjs/Utils.js +25 -0
- package/lib/commonjs/Utils.js.map +1 -0
- package/lib/commonjs/nativeAd/NativeAdView.js +65 -42
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js +51 -47
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js +38 -8
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/commonjs/nativeAd/img/blank_icon.png +0 -0
- package/lib/commonjs/specs/AppLovinMAXAdViewNativeComponent.js +14 -0
- package/lib/commonjs/specs/AppLovinMAXAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/AppLovinMAXNativeAdViewNativeComponent.js +14 -0
- package/lib/commonjs/specs/AppLovinMAXNativeAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/NativeAppLovinMAXModule.js +9 -0
- package/lib/commonjs/specs/NativeAppLovinMAXModule.js.map +1 -0
- package/lib/commonjs/types/AdInfo.js +10 -3
- package/lib/commonjs/types/AdInfo.js.map +1 -1
- package/lib/module/AdView.js +62 -81
- package/lib/module/AdView.js.map +1 -1
- package/lib/module/AppLovinMAX.js +47 -7
- package/lib/module/AppLovinMAX.js.map +1 -1
- package/lib/module/AppOpenAd.js +1 -4
- package/lib/module/AppOpenAd.js.map +1 -1
- package/lib/module/BannerAd.js +1 -4
- package/lib/module/BannerAd.js.map +1 -1
- package/lib/module/ErrorCode.js +55 -4
- package/lib/module/ErrorCode.js.map +1 -1
- package/lib/module/EventEmitter.js +2 -4
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/InterstitialAd.js +2 -5
- package/lib/module/InterstitialAd.js.map +1 -1
- package/lib/module/MRecAd.js +1 -4
- package/lib/module/MRecAd.js.map +1 -1
- package/lib/module/Privacy.js +1 -4
- package/lib/module/Privacy.js.map +1 -1
- package/lib/module/RewardedAd.js +2 -5
- package/lib/module/RewardedAd.js.map +1 -1
- package/lib/module/Utils.js +17 -0
- package/lib/module/Utils.js.map +1 -0
- package/lib/module/nativeAd/NativeAdView.js +63 -40
- package/lib/module/nativeAd/NativeAdView.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewComponents.js +53 -49
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewProvider.js +39 -9
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/module/nativeAd/img/blank_icon.png +0 -0
- package/lib/module/specs/AppLovinMAXAdViewNativeComponent.js +7 -0
- package/lib/module/specs/AppLovinMAXAdViewNativeComponent.js.map +1 -0
- package/lib/module/specs/AppLovinMAXNativeAdViewNativeComponent.js +7 -0
- package/lib/module/specs/AppLovinMAXNativeAdViewNativeComponent.js.map +1 -0
- package/lib/module/specs/NativeAppLovinMAXModule.js +3 -0
- package/lib/module/specs/NativeAppLovinMAXModule.js.map +1 -0
- package/lib/module/types/AdInfo.js +10 -4
- package/lib/module/types/AdInfo.js.map +1 -1
- package/lib/typescript/src/AdView.d.ts +16 -16
- package/lib/typescript/src/AdView.d.ts.map +1 -1
- package/lib/typescript/src/AppLovinMAX.d.ts.map +1 -1
- package/lib/typescript/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/src/BannerAd.d.ts.map +1 -1
- package/lib/typescript/src/ErrorCode.d.ts.map +1 -1
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/src/MRecAd.d.ts.map +1 -1
- package/lib/typescript/src/Privacy.d.ts.map +1 -1
- package/lib/typescript/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/src/Utils.d.ts +16 -0
- package/lib/typescript/src/Utils.d.ts.map +1 -0
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts +1 -1
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +14 -5
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/src/specs/AppLovinMAXAdViewNativeComponent.d.ts +86 -0
- package/lib/typescript/src/specs/AppLovinMAXAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/AppLovinMAXNativeAdViewNativeComponent.d.ts +80 -0
- package/lib/typescript/src/specs/AppLovinMAXNativeAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeAppLovinMAXModule.d.ts +132 -0
- package/lib/typescript/src/specs/NativeAppLovinMAXModule.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +2 -2
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -1
- package/lib/typescript/src/types/AdInfo.d.ts +24 -25
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/src/types/AdProps.d.ts +4 -4
- package/lib/typescript/src/types/AdProps.d.ts.map +1 -1
- package/lib/typescript/src/types/FullscreenAd.d.ts +4 -4
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -1
- package/lib/typescript/src/types/NativeAd.d.ts +4 -0
- package/lib/typescript/src/types/NativeAd.d.ts.map +1 -1
- package/lib/typescript/src/types/ViewAd.d.ts +4 -4
- package/lib/typescript/src/types/ViewAd.d.ts.map +1 -1
- package/package.json +9 -1
- package/react-native-applovin-max.podspec +3 -3
- package/src/AdView.tsx +56 -121
- package/src/AppLovinMAX.ts +7 -8
- package/src/AppOpenAd.ts +3 -5
- package/src/BannerAd.ts +3 -5
- package/src/ErrorCode.ts +1 -3
- package/src/EventEmitter.ts +2 -3
- package/src/InterstitialAd.ts +4 -6
- package/src/MRecAd.ts +3 -5
- package/src/Privacy.ts +1 -3
- package/src/RewardedAd.ts +4 -6
- package/src/Utils.ts +26 -0
- package/src/nativeAd/NativeAdView.tsx +65 -65
- package/src/nativeAd/NativeAdViewComponents.tsx +32 -60
- package/src/nativeAd/NativeAdViewProvider.tsx +37 -12
- package/src/nativeAd/img/blank_icon.png +0 -0
- package/src/specs/AppLovinMAXAdViewNativeComponent.ts +96 -0
- package/src/specs/AppLovinMAXNativeAdViewNativeComponent.ts +89 -0
- package/src/specs/NativeAppLovinMAXModule.ts +208 -0
- package/src/types/AdEvent.ts +2 -2
- package/src/types/AdInfo.ts +28 -28
- package/src/types/AdProps.ts +4 -4
- package/src/types/FullscreenAd.ts +4 -4
- package/src/types/NativeAd.ts +5 -0
- package/src/types/ViewAd.ts +4 -4
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +0 -149
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +0 -163
- package/ios/AppLovinMAXAdView.m +0 -323
- package/ios/AppLovinMAXNativeAdView.m +0 -432
- package/ios/AppLovinMAXNativeAdViewManager.m +0 -64
package/android/build.gradle
CHANGED
|
@@ -53,8 +53,19 @@ android {
|
|
|
53
53
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
54
54
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
55
55
|
|
|
56
|
-
buildConfigField("int", "VERSION_CODE", "
|
|
57
|
-
buildConfigField("String", "VERSION_NAME", "\"
|
|
56
|
+
buildConfigField("int", "VERSION_CODE", "9000000")
|
|
57
|
+
buildConfigField("String", "VERSION_NAME", "\"9.0.0\"")
|
|
58
|
+
buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
sourceSets {
|
|
62
|
+
main {
|
|
63
|
+
if (isNewArchitectureEnabled()) {
|
|
64
|
+
java.srcDirs += ['src/newarch']
|
|
65
|
+
} else {
|
|
66
|
+
java.srcDirs += ['src/oldarch']
|
|
67
|
+
}
|
|
68
|
+
}
|
|
58
69
|
}
|
|
59
70
|
|
|
60
71
|
buildTypes {
|
|
@@ -85,6 +96,6 @@ dependencies {
|
|
|
85
96
|
//noinspection GradleDynamicVersion
|
|
86
97
|
implementation "com.facebook.react:react-native:0.75.4"
|
|
87
98
|
|
|
88
|
-
implementation "com.applovin:applovin-sdk:13.0
|
|
99
|
+
implementation "com.applovin:applovin-sdk:13.1.0"
|
|
89
100
|
}
|
|
90
101
|
|
|
@@ -7,7 +7,7 @@ import com.applovin.mediation.MaxAdFormat;
|
|
|
7
7
|
import com.applovin.mediation.ads.MaxAdView;
|
|
8
8
|
import com.facebook.react.bridge.Promise;
|
|
9
9
|
import com.facebook.react.bridge.ReactContext;
|
|
10
|
-
import com.facebook.react.bridge.
|
|
10
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
11
11
|
import com.facebook.react.views.view.ReactViewGroup;
|
|
12
12
|
|
|
13
13
|
import java.util.HashMap;
|
|
@@ -52,7 +52,7 @@ public class AppLovinMAXAdView
|
|
|
52
52
|
{
|
|
53
53
|
for ( Map.Entry<Integer, AppLovinMAXAdViewUiComponent> entry : preloadedUiComponentInstances.entrySet() )
|
|
54
54
|
{
|
|
55
|
-
if ( entry.getValue().getAdUnitId().equals
|
|
55
|
+
if ( entry.getValue().getAdUnitId().equals( adUnitId ) )
|
|
56
56
|
{
|
|
57
57
|
return entry.getValue().getAdView();
|
|
58
58
|
}
|
|
@@ -131,7 +131,7 @@ public class AppLovinMAXAdView
|
|
|
131
131
|
// Ad Unit ID must be set prior to creating MaxAdView
|
|
132
132
|
if ( uiComponent != null )
|
|
133
133
|
{
|
|
134
|
-
|
|
134
|
+
AppLovinMAXModuleImpl.e( "Attempting to set Ad Unit ID " + value + " after the native UI component is created" );
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -143,21 +143,21 @@ public class AppLovinMAXAdView
|
|
|
143
143
|
// Ad format must be set prior to creating MaxAdView
|
|
144
144
|
if ( uiComponent != null )
|
|
145
145
|
{
|
|
146
|
-
|
|
146
|
+
AppLovinMAXModuleImpl.e( "Attempting to set ad format " + value + " after the native UI component is created" );
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
if (
|
|
150
|
+
if ( "BANNER".equalsIgnoreCase( value ) )
|
|
151
151
|
{
|
|
152
|
-
adFormat =
|
|
152
|
+
adFormat = AppLovinMAXModuleImpl.getDeviceSpecificBannerAdViewAdFormat( reactContext );
|
|
153
153
|
}
|
|
154
|
-
else if (
|
|
154
|
+
else if ( "MREC".equalsIgnoreCase( value ) )
|
|
155
155
|
{
|
|
156
156
|
adFormat = MaxAdFormat.MREC;
|
|
157
157
|
}
|
|
158
158
|
else
|
|
159
159
|
{
|
|
160
|
-
|
|
160
|
+
AppLovinMAXModuleImpl.e( "Attempting to set an invalid ad format of \"" + value + "\" for " + adUnitId );
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -211,19 +211,26 @@ public class AppLovinMAXAdView
|
|
|
211
211
|
loadOnMount = enabled;
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
public void setExtraParameters(@Nullable final
|
|
214
|
+
public void setExtraParameters(@Nullable final ReadableArray extraParameters)
|
|
215
215
|
{
|
|
216
|
-
|
|
217
|
-
{
|
|
218
|
-
extraParameters = readableMap.toHashMap();
|
|
219
|
-
}
|
|
216
|
+
this.extraParameters = AppLovinMAXUtils.convertReadbleArrayToHashMap( extraParameters );
|
|
220
217
|
}
|
|
221
218
|
|
|
222
|
-
public void setLocalExtraParameters(@Nullable final
|
|
219
|
+
public void setLocalExtraParameters(@Nullable final ReadableArray localExtraParameters)
|
|
223
220
|
{
|
|
224
|
-
|
|
221
|
+
Map<String, Object> localExtraParametersMap = AppLovinMAXUtils.convertReadbleArrayToHashMap( localExtraParameters );
|
|
222
|
+
|
|
223
|
+
if ( localExtraParametersMap == null ) return;
|
|
224
|
+
|
|
225
|
+
// Accumulate the result since this function may be called multiple times
|
|
226
|
+
// to handle different value types, including string, number, boolean, and null.
|
|
227
|
+
if ( this.localExtraParameters != null )
|
|
228
|
+
{
|
|
229
|
+
this.localExtraParameters.putAll( localExtraParametersMap );
|
|
230
|
+
}
|
|
231
|
+
else
|
|
225
232
|
{
|
|
226
|
-
localExtraParameters =
|
|
233
|
+
this.localExtraParameters = localExtraParametersMap;
|
|
227
234
|
}
|
|
228
235
|
}
|
|
229
236
|
|
|
@@ -275,27 +282,27 @@ public class AppLovinMAXAdView
|
|
|
275
282
|
|
|
276
283
|
reactContext.runOnUiQueueThread( () -> {
|
|
277
284
|
|
|
278
|
-
if (
|
|
285
|
+
if ( AppLovinMAXModuleImpl.getInstance().getSdk() == null )
|
|
279
286
|
{
|
|
280
|
-
|
|
287
|
+
AppLovinMAXModuleImpl.logUninitializedAccessError( "AppLovinMAXAdView.maybeAttachAdView" );
|
|
281
288
|
return;
|
|
282
289
|
}
|
|
283
290
|
|
|
284
291
|
if ( TextUtils.isEmpty( adUnitId ) )
|
|
285
292
|
{
|
|
286
|
-
|
|
293
|
+
AppLovinMAXModuleImpl.e( "Attempting to attach a native UI component without Ad Unit ID" );
|
|
287
294
|
return;
|
|
288
295
|
}
|
|
289
296
|
|
|
290
297
|
if ( adFormat == null )
|
|
291
298
|
{
|
|
292
|
-
|
|
299
|
+
AppLovinMAXModuleImpl.e( "Attempting to attach a native UI component without ad format" );
|
|
293
300
|
return;
|
|
294
301
|
}
|
|
295
302
|
|
|
296
303
|
if ( uiComponent != null )
|
|
297
304
|
{
|
|
298
|
-
|
|
305
|
+
AppLovinMAXModuleImpl.e( "Attempting to re-attach with existing AdView (" + uiComponent.hashCode() + ") for Ad Unit ID " + adUnitId );
|
|
299
306
|
return;
|
|
300
307
|
}
|
|
301
308
|
|
|
@@ -305,7 +312,7 @@ public class AppLovinMAXAdView
|
|
|
305
312
|
// Attach the preloaded uiComponent if possible, otherwise create a new one for the same adUnitId
|
|
306
313
|
if ( !( uiComponent.hasContainerView() || uiComponent.isAdViewAttached() ) )
|
|
307
314
|
{
|
|
308
|
-
|
|
315
|
+
AppLovinMAXModuleImpl.d( "Mounting the preloaded AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
|
|
309
316
|
|
|
310
317
|
uiComponent.setAdaptiveBannerEnabled( adaptiveBannerEnabled );
|
|
311
318
|
uiComponent.setAutoRefreshEnabled( autoRefreshEnabled );
|
|
@@ -318,7 +325,7 @@ public class AppLovinMAXAdView
|
|
|
318
325
|
adViewId = uiComponent.hashCode();
|
|
319
326
|
uiComponentInstances.put( adViewId, uiComponent );
|
|
320
327
|
|
|
321
|
-
|
|
328
|
+
AppLovinMAXModuleImpl.d( "Mounting a new AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
|
|
322
329
|
|
|
323
330
|
uiComponent.setPlacement( placement );
|
|
324
331
|
uiComponent.setCustomData( customData );
|
|
@@ -340,7 +347,7 @@ public class AppLovinMAXAdView
|
|
|
340
347
|
{
|
|
341
348
|
if ( uiComponent == null )
|
|
342
349
|
{
|
|
343
|
-
|
|
350
|
+
AppLovinMAXModuleImpl.e( "Attempting to load uninitialized native UI component for " + adUnitId );
|
|
344
351
|
return;
|
|
345
352
|
}
|
|
346
353
|
|
|
@@ -357,13 +364,13 @@ public class AppLovinMAXAdView
|
|
|
357
364
|
|
|
358
365
|
if ( uiComponent == preloadedUiComponent )
|
|
359
366
|
{
|
|
360
|
-
|
|
367
|
+
AppLovinMAXModuleImpl.d( "Unmounting the preloaded AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
|
|
361
368
|
|
|
362
369
|
uiComponent.setAutoRefreshEnabled( false );
|
|
363
370
|
}
|
|
364
371
|
else
|
|
365
372
|
{
|
|
366
|
-
|
|
373
|
+
AppLovinMAXModuleImpl.d( "Unmounting the AdView (" + adViewId + ") to destroy for Ad Unit ID " + adUnitId );
|
|
367
374
|
|
|
368
375
|
uiComponentInstances.remove( adViewId );
|
|
369
376
|
uiComponent.destroy();
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
package com.applovin.reactnative;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
4
|
+
import com.facebook.react.common.MapBuilder;
|
|
5
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
6
|
+
|
|
7
|
+
import java.util.Map;
|
|
8
|
+
|
|
9
|
+
import androidx.annotation.NonNull;
|
|
10
|
+
import androidx.annotation.Nullable;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Created by Thomas So on September 26 2020
|
|
14
|
+
*/
|
|
15
|
+
class AppLovinMAXAdViewManagerImpl
|
|
16
|
+
{
|
|
17
|
+
public static final String NAME = "AppLovinMAXAdView";
|
|
18
|
+
|
|
19
|
+
public static Map<String, Object> getExportedCustomDirectEventTypeConstants()
|
|
20
|
+
{
|
|
21
|
+
return MapBuilder.<String, Object>builder()
|
|
22
|
+
.put( AppLovinMAXAdEvents.ON_AD_LOADED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_LOADED_EVENT ) )
|
|
23
|
+
.put( AppLovinMAXAdEvents.ON_AD_LOAD_FAILED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_LOAD_FAILED_EVENT ) )
|
|
24
|
+
.put( AppLovinMAXAdEvents.ON_AD_DISPLAY_FAILED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_DISPLAY_FAILED_EVENT ) )
|
|
25
|
+
.put( AppLovinMAXAdEvents.ON_AD_CLICKED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_CLICKED_EVENT ) )
|
|
26
|
+
.put( AppLovinMAXAdEvents.ON_AD_EXPANDED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_EXPANDED_EVENT ) )
|
|
27
|
+
.put( AppLovinMAXAdEvents.ON_AD_COLLAPSED_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_COLLAPSED_EVENT ) )
|
|
28
|
+
.put( AppLovinMAXAdEvents.ON_AD_REVENUE_PAID_EVENT, MapBuilder.of( "registrationName", AppLovinMAXAdEvents.ON_AD_REVENUE_PAID_EVENT ) )
|
|
29
|
+
.build();
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public static void receiveCommand(final AppLovinMAXAdView view, final String commandId, @Nullable final ReadableArray args)
|
|
33
|
+
{
|
|
34
|
+
if ( commandId.equals( "loadAd" ) )
|
|
35
|
+
{
|
|
36
|
+
loadAd( view );
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@NonNull
|
|
41
|
+
public static AppLovinMAXAdView createViewInstance(@NonNull final ThemedReactContext reactContext)
|
|
42
|
+
{
|
|
43
|
+
return new AppLovinMAXAdView( reactContext );
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public static void setAdUnitId(final AppLovinMAXAdView view, final String adUnitId)
|
|
47
|
+
{
|
|
48
|
+
view.setAdUnitId( adUnitId );
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public static void setAdFormat(final AppLovinMAXAdView view, final String adFormatStr)
|
|
52
|
+
{
|
|
53
|
+
view.setAdFormat( adFormatStr );
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public static void setAdViewId(final AppLovinMAXAdView view, final int adViewId)
|
|
57
|
+
{
|
|
58
|
+
view.setAdViewId( adViewId );
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public static void setPlacement(final AppLovinMAXAdView view, @Nullable final String placement)
|
|
62
|
+
{
|
|
63
|
+
view.setPlacement( placement );
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public static void setCustomData(final AppLovinMAXAdView view, @Nullable final String customData)
|
|
67
|
+
{
|
|
68
|
+
view.setCustomData( customData );
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public static void setAdaptiveBannerEnabled(final AppLovinMAXAdView view, final boolean enabled)
|
|
72
|
+
{
|
|
73
|
+
view.setAdaptiveBannerEnabled( enabled );
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public static void setAutoRefresh(final AppLovinMAXAdView view, final boolean enabled)
|
|
77
|
+
{
|
|
78
|
+
view.setAutoRefreshEnabled( enabled );
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public static void setLoadOnMount(final AppLovinMAXAdView view, final boolean enabled)
|
|
82
|
+
{
|
|
83
|
+
view.setLoadOnMount( enabled );
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public static void setExtraParameters(final AppLovinMAXAdView view, @Nullable final ReadableArray value)
|
|
87
|
+
{
|
|
88
|
+
view.setExtraParameters( value );
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
public static void setLocalExtraParameters(final AppLovinMAXAdView view, @Nullable final ReadableArray value)
|
|
92
|
+
{
|
|
93
|
+
view.setLocalExtraParameters( value );
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public static void onAfterUpdateTransaction(final AppLovinMAXAdView view)
|
|
97
|
+
{
|
|
98
|
+
view.onSetProps();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public static void onDropViewInstance(AppLovinMAXAdView view)
|
|
102
|
+
{
|
|
103
|
+
view.destroy();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
public static void loadAd(AppLovinMAXAdView view)
|
|
107
|
+
{
|
|
108
|
+
view.loadAd();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -11,7 +11,7 @@ import com.applovin.mediation.MaxError;
|
|
|
11
11
|
import com.applovin.mediation.ads.MaxAdView;
|
|
12
12
|
import com.facebook.react.bridge.ReactContext;
|
|
13
13
|
import com.facebook.react.bridge.WritableMap;
|
|
14
|
-
import com.facebook.react.uimanager.
|
|
14
|
+
import com.facebook.react.uimanager.UIManagerHelper;
|
|
15
15
|
|
|
16
16
|
import java.util.Map;
|
|
17
17
|
|
|
@@ -22,6 +22,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
22
22
|
implements MaxAdListener, MaxAdViewAdListener, MaxAdRevenueListener
|
|
23
23
|
{
|
|
24
24
|
private final ReactContext reactContext;
|
|
25
|
+
private final int surfaceId;
|
|
25
26
|
private final MaxAdView adView;
|
|
26
27
|
|
|
27
28
|
@Nullable
|
|
@@ -30,8 +31,9 @@ class AppLovinMAXAdViewUiComponent
|
|
|
30
31
|
public AppLovinMAXAdViewUiComponent(final String adUnitId, final MaxAdFormat adFormat, final ReactContext context)
|
|
31
32
|
{
|
|
32
33
|
reactContext = context;
|
|
34
|
+
surfaceId = UIManagerHelper.getSurfaceId( context );
|
|
33
35
|
|
|
34
|
-
adView = new MaxAdView( adUnitId, adFormat,
|
|
36
|
+
adView = new MaxAdView( adUnitId, adFormat, AppLovinMAXModuleImpl.getInstance().getSdk(), context );
|
|
35
37
|
adView.setListener( this );
|
|
36
38
|
adView.setRevenueListener( this );
|
|
37
39
|
adView.setExtraParameter( "adaptive_banner", "true" );
|
|
@@ -117,7 +119,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
117
119
|
{
|
|
118
120
|
if ( isAdViewAttached() )
|
|
119
121
|
{
|
|
120
|
-
|
|
122
|
+
AppLovinMAXModuleImpl.e( "Cannot attach AdView because it already has an existing parent: " + adView );
|
|
121
123
|
return;
|
|
122
124
|
}
|
|
123
125
|
|
|
@@ -164,13 +166,13 @@ class AppLovinMAXAdViewUiComponent
|
|
|
164
166
|
@Override
|
|
165
167
|
public void onAdLoaded(@NonNull final MaxAd ad)
|
|
166
168
|
{
|
|
167
|
-
WritableMap adInfo =
|
|
169
|
+
WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
|
|
168
170
|
adInfo.putInt( "adViewId", hashCode() );
|
|
169
171
|
|
|
170
172
|
if ( AppLovinMAXAdView.hasPreloadedAdView( hashCode() ) )
|
|
171
173
|
{
|
|
172
174
|
// Copy the `adInfo` since sending the same map through the RN bridge more than once will result in `com.facebook.react.bridge.ObjectAlreadyConsumedException: Map already consumed`
|
|
173
|
-
|
|
175
|
+
AppLovinMAXModuleImpl.getInstance().sendReactNativeEvent( AppLovinMAXAdEvents.ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT, adInfo.copy() );
|
|
174
176
|
}
|
|
175
177
|
|
|
176
178
|
if ( containerView != null )
|
|
@@ -182,13 +184,13 @@ class AppLovinMAXAdViewUiComponent
|
|
|
182
184
|
@Override
|
|
183
185
|
public void onAdLoadFailed(@NonNull final String adUnitId, @NonNull final MaxError error)
|
|
184
186
|
{
|
|
185
|
-
WritableMap adLoadFailedInfo =
|
|
187
|
+
WritableMap adLoadFailedInfo = AppLovinMAXModuleImpl.getInstance().getAdLoadFailedInfo( adUnitId, error );
|
|
186
188
|
adLoadFailedInfo.putInt( "adViewId", hashCode() );
|
|
187
189
|
|
|
188
190
|
if ( AppLovinMAXAdView.hasPreloadedAdView( hashCode() ) )
|
|
189
191
|
{
|
|
190
192
|
// Copy the `adLoadFailedInfo` since sending the same map through the RN bridge more than once will result in `com.facebook.react.bridge.ObjectAlreadyConsumedException: Map already consumed`
|
|
191
|
-
|
|
193
|
+
AppLovinMAXModuleImpl.getInstance().sendReactNativeEvent( AppLovinMAXAdEvents.ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT, adLoadFailedInfo.copy() );
|
|
192
194
|
}
|
|
193
195
|
|
|
194
196
|
if ( containerView != null )
|
|
@@ -202,7 +204,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
202
204
|
{
|
|
203
205
|
if ( containerView != null )
|
|
204
206
|
{
|
|
205
|
-
WritableMap adDisplayFailedInfo =
|
|
207
|
+
WritableMap adDisplayFailedInfo = AppLovinMAXModuleImpl.getInstance().getAdDisplayFailedInfo( ad, error );
|
|
206
208
|
adDisplayFailedInfo.putInt( "adViewId", hashCode() );
|
|
207
209
|
|
|
208
210
|
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_DISPLAY_FAILED_EVENT, adDisplayFailedInfo );
|
|
@@ -214,7 +216,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
214
216
|
{
|
|
215
217
|
if ( containerView != null )
|
|
216
218
|
{
|
|
217
|
-
WritableMap adInfo =
|
|
219
|
+
WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
|
|
218
220
|
adInfo.putInt( "adViewId", hashCode() );
|
|
219
221
|
|
|
220
222
|
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_CLICKED_EVENT, adInfo );
|
|
@@ -226,7 +228,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
226
228
|
{
|
|
227
229
|
if ( containerView != null )
|
|
228
230
|
{
|
|
229
|
-
WritableMap adInfo =
|
|
231
|
+
WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
|
|
230
232
|
adInfo.putInt( "adViewId", hashCode() );
|
|
231
233
|
|
|
232
234
|
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_EXPANDED_EVENT, adInfo );
|
|
@@ -238,7 +240,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
238
240
|
{
|
|
239
241
|
if ( containerView != null )
|
|
240
242
|
{
|
|
241
|
-
WritableMap adInfo =
|
|
243
|
+
WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
|
|
242
244
|
adInfo.putInt( "adViewId", hashCode() );
|
|
243
245
|
|
|
244
246
|
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_COLLAPSED_EVENT, adInfo );
|
|
@@ -250,10 +252,10 @@ class AppLovinMAXAdViewUiComponent
|
|
|
250
252
|
{
|
|
251
253
|
if ( containerView != null )
|
|
252
254
|
{
|
|
253
|
-
WritableMap
|
|
254
|
-
|
|
255
|
+
WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
|
|
256
|
+
adInfo.putInt( "adViewId", hashCode() );
|
|
255
257
|
|
|
256
|
-
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_REVENUE_PAID_EVENT,
|
|
258
|
+
sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_REVENUE_PAID_EVENT, adInfo );
|
|
257
259
|
}
|
|
258
260
|
}
|
|
259
261
|
|
|
@@ -271,7 +273,7 @@ class AppLovinMAXAdViewUiComponent
|
|
|
271
273
|
{
|
|
272
274
|
if ( containerView != null )
|
|
273
275
|
{
|
|
274
|
-
|
|
276
|
+
AppLovinMAXModuleImpl.getInstance().sendReactNativeViewEvent( surfaceId, containerView.getId(), name, params );
|
|
275
277
|
}
|
|
276
278
|
}
|
|
277
279
|
}
|