react-native-applovin-max 8.2.0 → 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.
Files changed (151) hide show
  1. package/android/build.gradle +13 -2
  2. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +33 -26
  3. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManagerImpl.java +110 -0
  4. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewUiComponent.java +15 -13
  5. package/android/src/main/java/com/applovin/reactnative/{AppLovinMAXModule.java → AppLovinMAXModuleImpl.java} +107 -168
  6. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +84 -56
  7. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManagerImpl.java +101 -0
  8. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXPackage.java +44 -11
  9. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXUtils.java +56 -0
  10. package/android/src/newarch/com/applovin/reactnative/AppLovinMAXAdViewManager.java +151 -0
  11. package/android/src/newarch/com/applovin/reactnative/AppLovinMAXModule.java +453 -0
  12. package/android/src/newarch/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +130 -0
  13. package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXAdViewManager.java +128 -0
  14. package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXModule.java +453 -0
  15. package/android/src/oldarch/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +93 -0
  16. package/ios/AppLovinMAX.h +8 -3
  17. package/ios/{AppLovinMAX.m → AppLovinMAX.mm} +66 -53
  18. package/ios/AppLovinMAXAdView.h +7 -2
  19. package/ios/AppLovinMAXAdView.mm +747 -0
  20. package/ios/{AppLovinMAXAdViewManager.m → AppLovinMAXAdViewManager.mm} +3 -2
  21. package/ios/{AppLovinMAXAdViewUIComponent.m → AppLovinMAXAdViewUIComponent.mm} +2 -1
  22. package/ios/AppLovinMAXNativeAdView.h +15 -4
  23. package/ios/AppLovinMAXNativeAdView.mm +745 -0
  24. package/ios/AppLovinMAXNativeAdViewManager.mm +116 -0
  25. package/lib/commonjs/AdView.js +61 -85
  26. package/lib/commonjs/AdView.js.map +1 -1
  27. package/lib/commonjs/AppLovinMAX.js +11 -10
  28. package/lib/commonjs/AppLovinMAX.js.map +1 -1
  29. package/lib/commonjs/AppOpenAd.js +8 -10
  30. package/lib/commonjs/AppOpenAd.js.map +1 -1
  31. package/lib/commonjs/BannerAd.js +19 -21
  32. package/lib/commonjs/BannerAd.js.map +1 -1
  33. package/lib/commonjs/ErrorCode.js +3 -5
  34. package/lib/commonjs/ErrorCode.js.map +1 -1
  35. package/lib/commonjs/EventEmitter.js +3 -5
  36. package/lib/commonjs/EventEmitter.js.map +1 -1
  37. package/lib/commonjs/InterstitialAd.js +8 -10
  38. package/lib/commonjs/InterstitialAd.js.map +1 -1
  39. package/lib/commonjs/MRecAd.js +14 -16
  40. package/lib/commonjs/MRecAd.js.map +1 -1
  41. package/lib/commonjs/Privacy.js +3 -5
  42. package/lib/commonjs/Privacy.js.map +1 -1
  43. package/lib/commonjs/RewardedAd.js +8 -10
  44. package/lib/commonjs/RewardedAd.js.map +1 -1
  45. package/lib/commonjs/Utils.js +25 -0
  46. package/lib/commonjs/Utils.js.map +1 -0
  47. package/lib/commonjs/nativeAd/NativeAdView.js +65 -42
  48. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
  49. package/lib/commonjs/nativeAd/NativeAdViewComponents.js +51 -47
  50. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
  51. package/lib/commonjs/nativeAd/NativeAdViewProvider.js +38 -8
  52. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
  53. package/lib/commonjs/nativeAd/img/blank_icon.png +0 -0
  54. package/lib/commonjs/specs/AppLovinMAXAdViewNativeComponent.js +14 -0
  55. package/lib/commonjs/specs/AppLovinMAXAdViewNativeComponent.js.map +1 -0
  56. package/lib/commonjs/specs/AppLovinMAXNativeAdViewNativeComponent.js +14 -0
  57. package/lib/commonjs/specs/AppLovinMAXNativeAdViewNativeComponent.js.map +1 -0
  58. package/lib/commonjs/specs/NativeAppLovinMAXModule.js +9 -0
  59. package/lib/commonjs/specs/NativeAppLovinMAXModule.js.map +1 -0
  60. package/lib/module/AdView.js +56 -81
  61. package/lib/module/AdView.js.map +1 -1
  62. package/lib/module/AppLovinMAX.js +7 -7
  63. package/lib/module/AppLovinMAX.js.map +1 -1
  64. package/lib/module/AppOpenAd.js +1 -4
  65. package/lib/module/AppOpenAd.js.map +1 -1
  66. package/lib/module/BannerAd.js +1 -4
  67. package/lib/module/BannerAd.js.map +1 -1
  68. package/lib/module/ErrorCode.js +1 -4
  69. package/lib/module/ErrorCode.js.map +1 -1
  70. package/lib/module/EventEmitter.js +2 -4
  71. package/lib/module/EventEmitter.js.map +1 -1
  72. package/lib/module/InterstitialAd.js +2 -5
  73. package/lib/module/InterstitialAd.js.map +1 -1
  74. package/lib/module/MRecAd.js +1 -4
  75. package/lib/module/MRecAd.js.map +1 -1
  76. package/lib/module/Privacy.js +1 -4
  77. package/lib/module/Privacy.js.map +1 -1
  78. package/lib/module/RewardedAd.js +2 -5
  79. package/lib/module/RewardedAd.js.map +1 -1
  80. package/lib/module/Utils.js +17 -0
  81. package/lib/module/Utils.js.map +1 -0
  82. package/lib/module/nativeAd/NativeAdView.js +63 -40
  83. package/lib/module/nativeAd/NativeAdView.js.map +1 -1
  84. package/lib/module/nativeAd/NativeAdViewComponents.js +53 -49
  85. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
  86. package/lib/module/nativeAd/NativeAdViewProvider.js +39 -9
  87. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
  88. package/lib/module/nativeAd/img/blank_icon.png +0 -0
  89. package/lib/module/specs/AppLovinMAXAdViewNativeComponent.js +7 -0
  90. package/lib/module/specs/AppLovinMAXAdViewNativeComponent.js.map +1 -0
  91. package/lib/module/specs/AppLovinMAXNativeAdViewNativeComponent.js +7 -0
  92. package/lib/module/specs/AppLovinMAXNativeAdViewNativeComponent.js.map +1 -0
  93. package/lib/module/specs/NativeAppLovinMAXModule.js +3 -0
  94. package/lib/module/specs/NativeAppLovinMAXModule.js.map +1 -0
  95. package/lib/typescript/src/AdView.d.ts +11 -11
  96. package/lib/typescript/src/AdView.d.ts.map +1 -1
  97. package/lib/typescript/src/AppLovinMAX.d.ts.map +1 -1
  98. package/lib/typescript/src/AppOpenAd.d.ts.map +1 -1
  99. package/lib/typescript/src/BannerAd.d.ts.map +1 -1
  100. package/lib/typescript/src/ErrorCode.d.ts.map +1 -1
  101. package/lib/typescript/src/EventEmitter.d.ts.map +1 -1
  102. package/lib/typescript/src/InterstitialAd.d.ts.map +1 -1
  103. package/lib/typescript/src/MRecAd.d.ts.map +1 -1
  104. package/lib/typescript/src/Privacy.d.ts.map +1 -1
  105. package/lib/typescript/src/RewardedAd.d.ts.map +1 -1
  106. package/lib/typescript/src/Utils.d.ts +16 -0
  107. package/lib/typescript/src/Utils.d.ts.map +1 -0
  108. package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -1
  109. package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  110. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +14 -5
  111. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  112. package/lib/typescript/src/specs/AppLovinMAXAdViewNativeComponent.d.ts +86 -0
  113. package/lib/typescript/src/specs/AppLovinMAXAdViewNativeComponent.d.ts.map +1 -0
  114. package/lib/typescript/src/specs/AppLovinMAXNativeAdViewNativeComponent.d.ts +80 -0
  115. package/lib/typescript/src/specs/AppLovinMAXNativeAdViewNativeComponent.d.ts.map +1 -0
  116. package/lib/typescript/src/specs/NativeAppLovinMAXModule.d.ts +132 -0
  117. package/lib/typescript/src/specs/NativeAppLovinMAXModule.d.ts.map +1 -0
  118. package/lib/typescript/src/types/AdInfo.d.ts +1 -1
  119. package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
  120. package/lib/typescript/src/types/AdProps.d.ts +2 -2
  121. package/lib/typescript/src/types/AdProps.d.ts.map +1 -1
  122. package/lib/typescript/src/types/NativeAd.d.ts +4 -0
  123. package/lib/typescript/src/types/NativeAd.d.ts.map +1 -1
  124. package/package.json +9 -1
  125. package/react-native-applovin-max.podspec +2 -2
  126. package/src/AdView.tsx +56 -121
  127. package/src/AppLovinMAX.ts +7 -8
  128. package/src/AppOpenAd.ts +1 -3
  129. package/src/BannerAd.ts +1 -3
  130. package/src/ErrorCode.ts +1 -3
  131. package/src/EventEmitter.ts +2 -3
  132. package/src/InterstitialAd.ts +2 -4
  133. package/src/MRecAd.ts +1 -3
  134. package/src/Privacy.ts +1 -3
  135. package/src/RewardedAd.ts +2 -4
  136. package/src/Utils.ts +26 -0
  137. package/src/nativeAd/NativeAdView.tsx +65 -65
  138. package/src/nativeAd/NativeAdViewComponents.tsx +32 -60
  139. package/src/nativeAd/NativeAdViewProvider.tsx +37 -12
  140. package/src/nativeAd/img/blank_icon.png +0 -0
  141. package/src/specs/AppLovinMAXAdViewNativeComponent.ts +96 -0
  142. package/src/specs/AppLovinMAXNativeAdViewNativeComponent.ts +89 -0
  143. package/src/specs/NativeAppLovinMAXModule.ts +208 -0
  144. package/src/types/AdInfo.ts +1 -1
  145. package/src/types/AdProps.ts +2 -2
  146. package/src/types/NativeAd.ts +5 -0
  147. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +0 -149
  148. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +0 -163
  149. package/ios/AppLovinMAXAdView.m +0 -325
  150. package/ios/AppLovinMAXNativeAdView.m +0 -432
  151. package/ios/AppLovinMAXNativeAdViewManager.m +0 -64
@@ -53,8 +53,19 @@ android {
53
53
  minSdkVersion getExtOrIntegerDefault("minSdkVersion")
54
54
  targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
55
55
 
56
- buildConfigField("int", "VERSION_CODE", "8020000")
57
- buildConfigField("String", "VERSION_NAME", "\"8.2.0\"")
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 {
@@ -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.ReadableMap;
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 ( adUnitId ) )
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
- AppLovinMAXModule.e( "Attempting to set Ad Unit ID " + value + " after the native UI component is created" );
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
- AppLovinMAXModule.e( "Attempting to set ad format " + value + " after the native UI component is created" );
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 ( MaxAdFormat.BANNER.getLabel().equals( value ) )
150
+ if ( "BANNER".equalsIgnoreCase( value ) )
151
151
  {
152
- adFormat = AppLovinMAXModule.getDeviceSpecificBannerAdViewAdFormat( reactContext );
152
+ adFormat = AppLovinMAXModuleImpl.getDeviceSpecificBannerAdViewAdFormat( reactContext );
153
153
  }
154
- else if ( MaxAdFormat.MREC.getLabel().equals( value ) )
154
+ else if ( "MREC".equalsIgnoreCase( value ) )
155
155
  {
156
156
  adFormat = MaxAdFormat.MREC;
157
157
  }
158
158
  else
159
159
  {
160
- AppLovinMAXModule.e( "Attempting to set an invalid ad format of \"" + value + "\" for " + adUnitId );
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 ReadableMap readableMap)
214
+ public void setExtraParameters(@Nullable final ReadableArray extraParameters)
215
215
  {
216
- if ( readableMap != null )
217
- {
218
- extraParameters = readableMap.toHashMap();
219
- }
216
+ this.extraParameters = AppLovinMAXUtils.convertReadbleArrayToHashMap( extraParameters );
220
217
  }
221
218
 
222
- public void setLocalExtraParameters(@Nullable final ReadableMap readableMap)
219
+ public void setLocalExtraParameters(@Nullable final ReadableArray localExtraParameters)
223
220
  {
224
- if ( readableMap != null )
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 = readableMap.toHashMap();
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 ( AppLovinMAXModule.getInstance().getSdk() == null )
285
+ if ( AppLovinMAXModuleImpl.getInstance().getSdk() == null )
279
286
  {
280
- AppLovinMAXModule.logUninitializedAccessError( "AppLovinMAXAdView.maybeAttachAdView" );
287
+ AppLovinMAXModuleImpl.logUninitializedAccessError( "AppLovinMAXAdView.maybeAttachAdView" );
281
288
  return;
282
289
  }
283
290
 
284
291
  if ( TextUtils.isEmpty( adUnitId ) )
285
292
  {
286
- AppLovinMAXModule.e( "Attempting to attach a native UI component without Ad Unit ID" );
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
- AppLovinMAXModule.e( "Attempting to attach a native UI component without ad format" );
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
- AppLovinMAXModule.e( "Attempting to re-attach with existing AdView (" + uiComponent.hashCode() + ") for Ad Unit ID " + adUnitId );
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
- AppLovinMAXModule.d( "Mounting the preloaded AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
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
- AppLovinMAXModule.d( "Mounting a new AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
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
- AppLovinMAXModule.e( "Attempting to load uninitialized native UI component for " + adUnitId );
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
- AppLovinMAXModule.d( "Unmounting the preloaded AdView (" + adViewId + ") for Ad Unit ID " + adUnitId );
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
- AppLovinMAXModule.d( "Unmounting the AdView (" + adViewId + ") to destroy for Ad Unit ID " + adUnitId );
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.events.RCTEventEmitter;
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, AppLovinMAXModule.getInstance().getSdk(), context );
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
- AppLovinMAXModule.e( "Cannot attach AdView because it already has an existing parent: " + adView );
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 = AppLovinMAXModule.getInstance().getAdInfo( ad );
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
- AppLovinMAXModule.getInstance().sendReactNativeEvent( AppLovinMAXAdEvents.ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT, adInfo.copy() );
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 = AppLovinMAXModule.getInstance().getAdLoadFailedInfo( adUnitId, error );
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
- AppLovinMAXModule.getInstance().sendReactNativeEvent( AppLovinMAXAdEvents.ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT, adLoadFailedInfo.copy() );
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 = AppLovinMAXModule.getInstance().getAdDisplayFailedInfo( ad, error );
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 = AppLovinMAXModule.getInstance().getAdInfo( ad );
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 = AppLovinMAXModule.getInstance().getAdInfo( ad );
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 = AppLovinMAXModule.getInstance().getAdInfo( ad );
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,7 +252,7 @@ class AppLovinMAXAdViewUiComponent
250
252
  {
251
253
  if ( containerView != null )
252
254
  {
253
- WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
255
+ WritableMap adInfo = AppLovinMAXModuleImpl.getInstance().getAdInfo( ad );
254
256
  adInfo.putInt( "adViewId", hashCode() );
255
257
 
256
258
  sendReactNativeCallbackEvent( AppLovinMAXAdEvents.ON_AD_REVENUE_PAID_EVENT, adInfo );
@@ -271,7 +273,7 @@ class AppLovinMAXAdViewUiComponent
271
273
  {
272
274
  if ( containerView != null )
273
275
  {
274
- reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( containerView.getId(), name, params );
276
+ AppLovinMAXModuleImpl.getInstance().sendReactNativeViewEvent( surfaceId, containerView.getId(), name, params );
275
277
  }
276
278
  }
277
279
  }