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
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
package com.applovin.reactnative;
|
|
2
2
|
|
|
3
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
4
3
|
import com.facebook.react.bridge.ReadableArray;
|
|
5
4
|
import com.facebook.react.bridge.ReadableMap;
|
|
6
5
|
import com.facebook.react.common.MapBuilder;
|
|
@@ -17,12 +16,13 @@ import androidx.annotation.Nullable;
|
|
|
17
16
|
* Created by Thomas So on September 26 2020
|
|
18
17
|
*/
|
|
19
18
|
class AppLovinMAXAdViewManager
|
|
20
|
-
|
|
19
|
+
extends SimpleViewManager<AppLovinMAXAdView>
|
|
21
20
|
{
|
|
22
21
|
private static final int COMMAND_LOAD_AD = 1;
|
|
23
22
|
|
|
24
|
-
public AppLovinMAXAdViewManager(
|
|
23
|
+
public AppLovinMAXAdViewManager() { }
|
|
25
24
|
|
|
25
|
+
@NonNull
|
|
26
26
|
@Override
|
|
27
27
|
public String getName()
|
|
28
28
|
{
|
|
@@ -35,14 +35,14 @@ class AppLovinMAXAdViewManager
|
|
|
35
35
|
{
|
|
36
36
|
// mapping Android events to JavaScript events
|
|
37
37
|
return MapBuilder.<String, Object>builder()
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
.put( "onAdLoadedEvent", MapBuilder.of( "registrationName", "onAdLoadedEvent" ) )
|
|
39
|
+
.put( "onAdLoadFailedEvent", MapBuilder.of( "registrationName", "onAdLoadFailedEvent" ) )
|
|
40
|
+
.put( "onAdDisplayFailedEvent", MapBuilder.of( "registrationName", "onAdDisplayFailedEvent" ) )
|
|
41
|
+
.put( "onAdClickedEvent", MapBuilder.of( "registrationName", "onAdClickedEvent" ) )
|
|
42
|
+
.put( "onAdExpandedEvent", MapBuilder.of( "registrationName", "onAdExpandedEvent" ) )
|
|
43
|
+
.put( "onAdCollapsedEvent", MapBuilder.of( "registrationName", "onAdCollapsedEvent" ) )
|
|
44
|
+
.put( "onAdRevenuePaidEvent", MapBuilder.of( "registrationName", "onAdRevenuePaidEvent" ) )
|
|
45
|
+
.build();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
@Nullable
|
|
@@ -50,23 +50,22 @@ class AppLovinMAXAdViewManager
|
|
|
50
50
|
public Map<String, Integer> getCommandsMap()
|
|
51
51
|
{
|
|
52
52
|
return MapBuilder.of(
|
|
53
|
-
|
|
53
|
+
"loadAd", COMMAND_LOAD_AD
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
@Override
|
|
58
58
|
public void receiveCommand(@NonNull final AppLovinMAXAdView view, final int commandId, @Nullable final ReadableArray args)
|
|
59
59
|
{
|
|
60
|
-
|
|
60
|
+
if ( commandId == COMMAND_LOAD_AD )
|
|
61
61
|
{
|
|
62
|
-
|
|
63
|
-
view.loadAd();
|
|
64
|
-
break;
|
|
62
|
+
view.loadAd();
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
|
|
66
|
+
@NonNull
|
|
68
67
|
@Override
|
|
69
|
-
protected AppLovinMAXAdView createViewInstance(final ThemedReactContext reactContext)
|
|
68
|
+
protected AppLovinMAXAdView createViewInstance(@NonNull final ThemedReactContext reactContext)
|
|
70
69
|
{
|
|
71
70
|
// NOTE: Do not set frame or backgroundColor as RN will overwrite the values set by your custom class in order to match your JavaScript component's layout props - hence wrapper
|
|
72
71
|
return new AppLovinMAXAdView( reactContext );
|
|
@@ -126,6 +125,14 @@ class AppLovinMAXAdViewManager
|
|
|
126
125
|
view.setLocalExtraParameters( value );
|
|
127
126
|
}
|
|
128
127
|
|
|
128
|
+
@Override
|
|
129
|
+
public void onAfterUpdateTransaction(@NonNull final AppLovinMAXAdView view)
|
|
130
|
+
{
|
|
131
|
+
super.onAfterUpdateTransaction( view );
|
|
132
|
+
|
|
133
|
+
view.onSetProps();
|
|
134
|
+
}
|
|
135
|
+
|
|
129
136
|
@Override
|
|
130
137
|
public void onDropViewInstance(AppLovinMAXAdView view)
|
|
131
138
|
{
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
package com.applovin.reactnative;
|
|
2
|
+
|
|
3
|
+
import android.view.View;
|
|
4
|
+
|
|
5
|
+
import com.applovin.mediation.MaxAd;
|
|
6
|
+
import com.applovin.mediation.MaxAdFormat;
|
|
7
|
+
import com.applovin.mediation.MaxAdListener;
|
|
8
|
+
import com.applovin.mediation.MaxAdRevenueListener;
|
|
9
|
+
import com.applovin.mediation.MaxAdViewAdListener;
|
|
10
|
+
import com.applovin.mediation.MaxError;
|
|
11
|
+
import com.applovin.mediation.ads.MaxAdView;
|
|
12
|
+
import com.facebook.react.bridge.ReactContext;
|
|
13
|
+
import com.facebook.react.bridge.WritableMap;
|
|
14
|
+
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
15
|
+
|
|
16
|
+
import java.util.Map;
|
|
17
|
+
|
|
18
|
+
import androidx.annotation.NonNull;
|
|
19
|
+
import androidx.annotation.Nullable;
|
|
20
|
+
|
|
21
|
+
class AppLovinMAXAdViewUiComponent
|
|
22
|
+
implements MaxAdListener, MaxAdViewAdListener, MaxAdRevenueListener
|
|
23
|
+
{
|
|
24
|
+
private final ReactContext reactContext;
|
|
25
|
+
private final MaxAdView adView;
|
|
26
|
+
|
|
27
|
+
@Nullable
|
|
28
|
+
private AppLovinMAXAdView containerView;
|
|
29
|
+
|
|
30
|
+
public AppLovinMAXAdViewUiComponent(final String adUnitId, final MaxAdFormat adFormat, final ReactContext context)
|
|
31
|
+
{
|
|
32
|
+
reactContext = context;
|
|
33
|
+
|
|
34
|
+
adView = new MaxAdView( adUnitId, adFormat, AppLovinMAXModule.getInstance().getSdk(), context );
|
|
35
|
+
adView.setListener( this );
|
|
36
|
+
adView.setRevenueListener( this );
|
|
37
|
+
|
|
38
|
+
adView.setExtraParameter( "adaptive_banner", "true" );
|
|
39
|
+
|
|
40
|
+
// Set this extra parameter to work around a SDK bug that ignores calls to stopAutoRefresh()
|
|
41
|
+
adView.setExtraParameter( "allow_pause_auto_refresh_immediately", "true" );
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public MaxAdView getAdView()
|
|
45
|
+
{
|
|
46
|
+
return adView;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public void setPlacement(@Nullable final String value)
|
|
50
|
+
{
|
|
51
|
+
adView.setPlacement( value );
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public void setCustomData(@Nullable final String value)
|
|
55
|
+
{
|
|
56
|
+
adView.setCustomData( value );
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public void setAdaptiveBannerEnabled(final boolean enabled)
|
|
60
|
+
{
|
|
61
|
+
adView.setExtraParameter( "adaptive_banner", Boolean.toString( enabled ) );
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public void setAutoRefresh(final boolean enabled)
|
|
65
|
+
{
|
|
66
|
+
if ( enabled )
|
|
67
|
+
{
|
|
68
|
+
adView.startAutoRefresh();
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
{
|
|
72
|
+
adView.stopAutoRefresh();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public void setExtraParameters(@Nullable final Map<String, Object> extraParameters)
|
|
77
|
+
{
|
|
78
|
+
if ( extraParameters == null ) return;
|
|
79
|
+
|
|
80
|
+
for ( Map.Entry<String, Object> entry : extraParameters.entrySet() )
|
|
81
|
+
{
|
|
82
|
+
adView.setExtraParameter( entry.getKey(), (String) entry.getValue() );
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public void setLocalExtraParameters(@Nullable final Map<String, Object> localExtraParameters)
|
|
87
|
+
{
|
|
88
|
+
if ( localExtraParameters == null ) return;
|
|
89
|
+
|
|
90
|
+
for ( Map.Entry<String, Object> entry : localExtraParameters.entrySet() )
|
|
91
|
+
{
|
|
92
|
+
adView.setLocalExtraParameter( entry.getKey(), entry.getValue() );
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public boolean hasContainerView()
|
|
97
|
+
{
|
|
98
|
+
return containerView != null;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public void attachAdView(AppLovinMAXAdView view)
|
|
102
|
+
{
|
|
103
|
+
containerView = view;
|
|
104
|
+
containerView.addView( adView );
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public void detachAdView()
|
|
108
|
+
{
|
|
109
|
+
if ( containerView != null )
|
|
110
|
+
{
|
|
111
|
+
containerView.removeView( adView );
|
|
112
|
+
containerView = null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
public void loadAd()
|
|
117
|
+
{
|
|
118
|
+
adView.loadAd();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public void destroy()
|
|
122
|
+
{
|
|
123
|
+
detachAdView();
|
|
124
|
+
|
|
125
|
+
adView.setListener( null );
|
|
126
|
+
adView.setRevenueListener( null );
|
|
127
|
+
adView.destroy();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public void measureAndLayout(int x, int y, int width, int height)
|
|
131
|
+
{
|
|
132
|
+
// https://stackoverflow.com/a/39838774/5477988
|
|
133
|
+
// This is required to ensure ad refreshes render correctly in RN Android due to known issue
|
|
134
|
+
// where `getWidth()` and `getHeight()` return 0 on attach
|
|
135
|
+
adView.measure(
|
|
136
|
+
View.MeasureSpec.makeMeasureSpec( width, View.MeasureSpec.EXACTLY ),
|
|
137
|
+
View.MeasureSpec.makeMeasureSpec( height, View.MeasureSpec.EXACTLY )
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
adView.layout( x, y, width, height );
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@Override
|
|
144
|
+
public void onAdLoaded(@NonNull final MaxAd ad)
|
|
145
|
+
{
|
|
146
|
+
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
147
|
+
|
|
148
|
+
// 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`
|
|
149
|
+
AppLovinMAXModule.getInstance().sendReactNativeEvent( "OnNativeUIComponentAdViewAdLoadedEvent", adInfo.copy() );
|
|
150
|
+
|
|
151
|
+
if ( containerView != null )
|
|
152
|
+
{
|
|
153
|
+
sendReactNativeCallbackEvent( "onAdLoadedEvent", adInfo );
|
|
154
|
+
}
|
|
155
|
+
else
|
|
156
|
+
{
|
|
157
|
+
setAutoRefresh( false );
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@Override
|
|
162
|
+
public void onAdLoadFailed(@NonNull final String adUnitId, @NonNull final MaxError error)
|
|
163
|
+
{
|
|
164
|
+
WritableMap adLoadFailedInfo = AppLovinMAXModule.getInstance().getAdLoadFailedInfo( adUnitId, error );
|
|
165
|
+
|
|
166
|
+
// 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`
|
|
167
|
+
AppLovinMAXModule.getInstance().sendReactNativeEvent( "OnNativeUIComponentAdViewAdLoadFailedEvent", adLoadFailedInfo.copy() );
|
|
168
|
+
|
|
169
|
+
if ( containerView != null )
|
|
170
|
+
{
|
|
171
|
+
sendReactNativeCallbackEvent( "onAdLoadFailedEvent", adLoadFailedInfo );
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@Override
|
|
176
|
+
public void onAdDisplayFailed(@NonNull final MaxAd ad, @NonNull final MaxError error)
|
|
177
|
+
{
|
|
178
|
+
if ( containerView != null )
|
|
179
|
+
{
|
|
180
|
+
WritableMap adDisplayFailedInfo = AppLovinMAXModule.getInstance().getAdDisplayFailedInfo( ad, error );
|
|
181
|
+
sendReactNativeCallbackEvent( "onAdDisplayFailedEvent", adDisplayFailedInfo );
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@Override
|
|
186
|
+
public void onAdClicked(@NonNull final MaxAd ad)
|
|
187
|
+
{
|
|
188
|
+
if ( containerView != null )
|
|
189
|
+
{
|
|
190
|
+
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
191
|
+
sendReactNativeCallbackEvent( "onAdClickedEvent", adInfo );
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@Override
|
|
196
|
+
public void onAdExpanded(@NonNull final MaxAd ad)
|
|
197
|
+
{
|
|
198
|
+
if ( containerView != null )
|
|
199
|
+
{
|
|
200
|
+
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
201
|
+
sendReactNativeCallbackEvent( "onAdExpandedEvent", adInfo );
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@Override
|
|
206
|
+
public void onAdCollapsed(@NonNull final MaxAd ad)
|
|
207
|
+
{
|
|
208
|
+
if ( containerView != null )
|
|
209
|
+
{
|
|
210
|
+
WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
|
|
211
|
+
sendReactNativeCallbackEvent( "onAdCollapsedEvent", adInfo );
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
@Override
|
|
216
|
+
public void onAdRevenuePaid(@NonNull final MaxAd ad)
|
|
217
|
+
{
|
|
218
|
+
if ( containerView != null )
|
|
219
|
+
{
|
|
220
|
+
WritableMap adRevenueInfo = AppLovinMAXModule.getInstance().getAdRevenueInfo( ad );
|
|
221
|
+
sendReactNativeCallbackEvent( "onAdRevenuePaidEvent", adRevenueInfo );
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/// Deprecated Callbacks
|
|
226
|
+
|
|
227
|
+
@Override
|
|
228
|
+
public void onAdDisplayed(@NonNull final MaxAd ad) { }
|
|
229
|
+
|
|
230
|
+
@Override
|
|
231
|
+
public void onAdHidden(@NonNull final MaxAd ad) { }
|
|
232
|
+
|
|
233
|
+
/// Utilities
|
|
234
|
+
|
|
235
|
+
private void sendReactNativeCallbackEvent(final String name, @Nullable final WritableMap params)
|
|
236
|
+
{
|
|
237
|
+
if ( containerView != null )
|
|
238
|
+
{
|
|
239
|
+
reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( containerView.getId(), name, params );
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|