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.
- package/android/build.gradle +13 -2
- 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 +15 -13
- package/android/src/main/java/com/applovin/reactnative/{AppLovinMAXModule.java → AppLovinMAXModuleImpl.java} +107 -168
- 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 -3
- package/ios/{AppLovinMAX.m → AppLovinMAX.mm} +66 -53
- 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 +61 -85
- package/lib/commonjs/AdView.js.map +1 -1
- package/lib/commonjs/AppLovinMAX.js +11 -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 +3 -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/module/AdView.js +56 -81
- package/lib/module/AdView.js.map +1 -1
- package/lib/module/AppLovinMAX.js +7 -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 +1 -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/typescript/src/AdView.d.ts +11 -11
- 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.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/AdInfo.d.ts +1 -1
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/src/types/AdProps.d.ts +2 -2
- package/lib/typescript/src/types/AdProps.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/package.json +9 -1
- package/react-native-applovin-max.podspec +2 -2
- package/src/AdView.tsx +56 -121
- package/src/AppLovinMAX.ts +7 -8
- package/src/AppOpenAd.ts +1 -3
- package/src/BannerAd.ts +1 -3
- package/src/ErrorCode.ts +1 -3
- package/src/EventEmitter.ts +2 -3
- package/src/InterstitialAd.ts +2 -4
- package/src/MRecAd.ts +1 -3
- package/src/Privacy.ts +1 -3
- package/src/RewardedAd.ts +2 -4
- 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/AdInfo.ts +1 -1
- package/src/types/AdProps.ts +2 -2
- package/src/types/NativeAd.ts +5 -0
- 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 -325
- package/ios/AppLovinMAXNativeAdView.m +0 -432
- package/ios/AppLovinMAXNativeAdViewManager.m +0 -64
package/ios/AppLovinMAXAdView.m
DELETED
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AppLovinMAXAdView.m
|
|
3
|
-
// AppLovin MAX React Native Module
|
|
4
|
-
//
|
|
5
|
-
// Copyright © 2022 AppLovin. All rights reserved.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#import <AppLovinSDK/AppLovinSDK.h>
|
|
9
|
-
#import "AppLovinMAX.h"
|
|
10
|
-
#import "AppLovinMAXAdView.h"
|
|
11
|
-
#import "AppLovinMAXAdViewUIComponent.h"
|
|
12
|
-
|
|
13
|
-
@interface AppLovinMAXAdView()
|
|
14
|
-
|
|
15
|
-
@property (nonatomic, strong, nullable) AppLovinMAXAdViewUIComponent *uiComponent; // nil when unmounted
|
|
16
|
-
|
|
17
|
-
// The following properties are updated from RN layer via the view manager
|
|
18
|
-
@property (nonatomic, copy) NSString *adUnitId;
|
|
19
|
-
@property (nonatomic, weak) MAAdFormat *adFormat;
|
|
20
|
-
@property (nonatomic, copy) NSNumber *adViewId;
|
|
21
|
-
@property (nonatomic, copy, nullable) NSString *placement;
|
|
22
|
-
@property (nonatomic, copy, nullable) NSString *customData;
|
|
23
|
-
@property (nonatomic, assign, readonly, getter=isAdaptiveBannerEnabled) BOOL adaptiveBannerEnabled;
|
|
24
|
-
@property (nonatomic, assign, readonly, getter=isAutoRefreshEnabled) BOOL autoRefresh;
|
|
25
|
-
@property (nonatomic, assign, readonly, getter=isLoadOnMount) BOOL loadOnMount;
|
|
26
|
-
@property (nonatomic, copy, nullable) NSDictionary<NSString *, id> *extraParameters;
|
|
27
|
-
@property (nonatomic, copy, nullable) NSDictionary<NSString *, id> *localExtraParameters;
|
|
28
|
-
|
|
29
|
-
@end
|
|
30
|
-
|
|
31
|
-
@implementation AppLovinMAXAdView
|
|
32
|
-
|
|
33
|
-
static NSMutableDictionary<NSNumber *, AppLovinMAXAdViewUIComponent *> *uiComponentInstances;
|
|
34
|
-
static NSMutableDictionary<NSNumber *, AppLovinMAXAdViewUIComponent *> *preloadedUIComponentInstances;
|
|
35
|
-
|
|
36
|
-
+ (void)initialize
|
|
37
|
-
{
|
|
38
|
-
[super initialize];
|
|
39
|
-
uiComponentInstances = [NSMutableDictionary dictionaryWithCapacity: 2];
|
|
40
|
-
preloadedUIComponentInstances = [NSMutableDictionary dictionaryWithCapacity: 2];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// Returns an MAAdView to support Amazon integrations. This method returns the first instance that
|
|
45
|
-
// matches the Ad Unit ID, consistent with the behavior introduced when this feature was first
|
|
46
|
-
// implemented.
|
|
47
|
-
+ (nullable MAAdView *)sharedWithAdUnitIdentifier:(NSString *)adUnitIdentifier
|
|
48
|
-
{
|
|
49
|
-
for ( id key in preloadedUIComponentInstances )
|
|
50
|
-
{
|
|
51
|
-
AppLovinMAXAdViewUIComponent *uiComponent = preloadedUIComponentInstances[key];
|
|
52
|
-
if ( [uiComponent.adUnitIdentifier isEqualToString: adUnitIdentifier] )
|
|
53
|
-
{
|
|
54
|
-
return uiComponent.adView;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
for ( id key in uiComponentInstances )
|
|
59
|
-
{
|
|
60
|
-
AppLovinMAXAdViewUIComponent *uiComponent = uiComponentInstances[key];
|
|
61
|
-
if ( [uiComponent.adUnitIdentifier isEqualToString: adUnitIdentifier] )
|
|
62
|
-
{
|
|
63
|
-
return uiComponent.adView;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return nil;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
+ (BOOL)hasPreloadedAdViewForIdentifier:(NSNumber *)adViewId
|
|
71
|
-
{
|
|
72
|
-
return preloadedUIComponentInstances[adViewId];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
+ (void)preloadNativeUIComponentAdView:(NSString *)adUnitIdentifier
|
|
76
|
-
adFormat:(MAAdFormat *)adFormat
|
|
77
|
-
placement:(nullable NSString *)placement
|
|
78
|
-
customData:(nullable NSString *)customData
|
|
79
|
-
extraParameters:(nullable NSDictionary<NSString *, id> *)extraParameters
|
|
80
|
-
localExtraParameters:(nullable NSDictionary<NSString *, id> *)localExtraParameters
|
|
81
|
-
withPromiseResolver:(RCTPromiseResolveBlock)resolve
|
|
82
|
-
withPromiseRejecter:(RCTPromiseRejectBlock)reject
|
|
83
|
-
{
|
|
84
|
-
AppLovinMAXAdViewUIComponent *preloadedUIComponent = [[AppLovinMAXAdViewUIComponent alloc] initWithAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
|
85
|
-
preloadedUIComponentInstances[@(preloadedUIComponent.hash)] = preloadedUIComponent;
|
|
86
|
-
|
|
87
|
-
preloadedUIComponent.placement = placement;
|
|
88
|
-
preloadedUIComponent.customData = customData;
|
|
89
|
-
preloadedUIComponent.extraParameters = extraParameters;
|
|
90
|
-
preloadedUIComponent.localExtraParameters = localExtraParameters;
|
|
91
|
-
|
|
92
|
-
[preloadedUIComponent loadAd];
|
|
93
|
-
|
|
94
|
-
resolve(@(preloadedUIComponent.hash));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
+ (void)destroyNativeUIComponentAdView:(NSNumber *)adViewId
|
|
98
|
-
withPromiseResolver:(RCTPromiseResolveBlock)resolve
|
|
99
|
-
withPromiseRejecter:(RCTPromiseRejectBlock)reject
|
|
100
|
-
{
|
|
101
|
-
AppLovinMAXAdViewUIComponent *preloadedUIComponent = preloadedUIComponentInstances[adViewId];
|
|
102
|
-
if ( !preloadedUIComponent )
|
|
103
|
-
{
|
|
104
|
-
reject(RCTErrorUnspecified, @"No preloaded AdView found to destroy", nil);
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
if ( [preloadedUIComponent hasContainerView] )
|
|
109
|
-
{
|
|
110
|
-
reject(RCTErrorUnspecified, @"Cannot destroy - the preloaded AdView is currently in use", nil);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
[preloadedUIComponentInstances removeObjectForKey: adViewId];
|
|
115
|
-
|
|
116
|
-
[preloadedUIComponent detachAdView];
|
|
117
|
-
[preloadedUIComponent destroy];
|
|
118
|
-
|
|
119
|
-
resolve(nil);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
- (void)setAdUnitId:(NSString *)adUnitId
|
|
123
|
-
{
|
|
124
|
-
// Ad Unit ID must be set prior to creating MAAdView
|
|
125
|
-
if ( self.uiComponent )
|
|
126
|
-
{
|
|
127
|
-
[[AppLovinMAX shared] log: @"Attempting to set Ad Unit ID %@ after the native UI component is created", adUnitId];
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
_adUnitId = adUnitId;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
- (void)setAdFormat:(NSString *)adFormat
|
|
135
|
-
{
|
|
136
|
-
// Ad format must be set prior to creating MAAdView
|
|
137
|
-
if ( self.uiComponent )
|
|
138
|
-
{
|
|
139
|
-
[[AppLovinMAX shared] log: @"Attempting to set ad format %@ after the native UI component is created", adFormat];
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if ( [MAAdFormat.banner.label isEqualToString: adFormat] )
|
|
144
|
-
{
|
|
145
|
-
_adFormat = DEVICE_SPECIFIC_ADVIEW_AD_FORMAT;
|
|
146
|
-
}
|
|
147
|
-
else if ( [MAAdFormat.mrec.label isEqualToString: adFormat] )
|
|
148
|
-
{
|
|
149
|
-
_adFormat = MAAdFormat.mrec;
|
|
150
|
-
}
|
|
151
|
-
else
|
|
152
|
-
{
|
|
153
|
-
[[AppLovinMAX shared] log: @"Attempting to set an invalid ad format of \"%@\" for %@", adFormat, self.adUnitId];
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
- (void)setAdViewId:(NSNumber *)adViewId
|
|
158
|
-
{
|
|
159
|
-
_adViewId = adViewId;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
- (void)setPlacement:(NSString *)placement
|
|
163
|
-
{
|
|
164
|
-
_placement = placement;
|
|
165
|
-
|
|
166
|
-
if ( self.uiComponent )
|
|
167
|
-
{
|
|
168
|
-
self.uiComponent.placement = placement;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
- (void)setCustomData:(NSString *)customData
|
|
173
|
-
{
|
|
174
|
-
_customData = customData;
|
|
175
|
-
|
|
176
|
-
if ( self.uiComponent )
|
|
177
|
-
{
|
|
178
|
-
self.uiComponent.customData = customData;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
- (void)setAdaptiveBannerEnabled:(BOOL)adaptiveBannerEnabled
|
|
183
|
-
{
|
|
184
|
-
_adaptiveBannerEnabled = adaptiveBannerEnabled;
|
|
185
|
-
|
|
186
|
-
if ( self.uiComponent )
|
|
187
|
-
{
|
|
188
|
-
self.uiComponent.adaptiveBannerEnabled = adaptiveBannerEnabled;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
- (void)setAutoRefresh:(BOOL)autoRefresh
|
|
193
|
-
{
|
|
194
|
-
_autoRefresh = autoRefresh;
|
|
195
|
-
|
|
196
|
-
if ( self.uiComponent )
|
|
197
|
-
{
|
|
198
|
-
self.uiComponent.autoRefreshEnabled = autoRefresh;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
- (void)setLoadOnMount:(BOOL)loadOnMount
|
|
203
|
-
{
|
|
204
|
-
_loadOnMount = loadOnMount;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Invoked after all the JavaScript properties are set when mounting AdView
|
|
208
|
-
- (void)didSetProps:(NSArray<NSString *> *)changedProps
|
|
209
|
-
{
|
|
210
|
-
[self attachAdViewIfNeeded];
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
- (void)attachAdViewIfNeeded
|
|
214
|
-
{
|
|
215
|
-
// Re-assign in case of race condition
|
|
216
|
-
NSString *adUnitId = self.adUnitId;
|
|
217
|
-
MAAdFormat *adFormat = self.adFormat;
|
|
218
|
-
|
|
219
|
-
dispatch_async(dispatch_get_main_queue(), ^{
|
|
220
|
-
|
|
221
|
-
if ( ![AppLovinMAX shared].sdk )
|
|
222
|
-
{
|
|
223
|
-
[[AppLovinMAX shared] logUninitializedAccessError: @"AppLovinMAXAdView.attachAdViewIfNeeded"];
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
if ( ![adUnitId al_isValidString] )
|
|
228
|
-
{
|
|
229
|
-
[[AppLovinMAX shared] log: @"Attempting to attach a native UI component without Ad Unit ID"];
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if ( !adFormat )
|
|
234
|
-
{
|
|
235
|
-
[[AppLovinMAX shared] log: @"Attempting to attach a native UI component without ad format"];
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if ( self.uiComponent )
|
|
240
|
-
{
|
|
241
|
-
[[AppLovinMAX shared] log: @"Attempting to re-attach with existing AdView (%@) for Ad Unit ID %@", @(self.uiComponent.hash), self.adUnitId];
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
self.uiComponent = preloadedUIComponentInstances[self.adViewId];
|
|
246
|
-
if ( self.uiComponent )
|
|
247
|
-
{
|
|
248
|
-
// Attach the preloaded uiComponent if possible, otherwise create a new one for the same adUnitId
|
|
249
|
-
if ( ![self.uiComponent hasContainerView] )
|
|
250
|
-
{
|
|
251
|
-
[[AppLovinMAX shared] log: @"Mounting the preloaded AdView (%@) for Ad Unit ID %@", self.adViewId, self.adUnitId];
|
|
252
|
-
|
|
253
|
-
self.uiComponent.adaptiveBannerEnabled = [self isAdaptiveBannerEnabled];
|
|
254
|
-
self.uiComponent.autoRefreshEnabled = [self isAutoRefreshEnabled];
|
|
255
|
-
[self.uiComponent attachAdView: self];
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
self.uiComponent = [[AppLovinMAXAdViewUIComponent alloc] initWithAdUnitIdentifier: adUnitId adFormat: adFormat];
|
|
261
|
-
self.adViewId = @(self.uiComponent.hash);
|
|
262
|
-
uiComponentInstances[self.adViewId] = self.uiComponent;
|
|
263
|
-
|
|
264
|
-
[[AppLovinMAX shared] log: @"Mounting a new AdView (%@) for Ad Unit ID %@", self.adViewId, self.adUnitId];
|
|
265
|
-
|
|
266
|
-
self.uiComponent.placement = self.placement;
|
|
267
|
-
self.uiComponent.customData = self.customData;
|
|
268
|
-
self.uiComponent.extraParameters = self.extraParameters;
|
|
269
|
-
self.uiComponent.localExtraParameters = self.localExtraParameters;
|
|
270
|
-
self.uiComponent.adaptiveBannerEnabled = [self isAdaptiveBannerEnabled];
|
|
271
|
-
self.uiComponent.autoRefreshEnabled = [self isAutoRefreshEnabled];
|
|
272
|
-
|
|
273
|
-
[self.uiComponent attachAdView: self];
|
|
274
|
-
|
|
275
|
-
if ( [self isLoadOnMount] )
|
|
276
|
-
{
|
|
277
|
-
[self.uiComponent loadAd];
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
- (void)loadAd
|
|
283
|
-
{
|
|
284
|
-
if ( !self.uiComponent )
|
|
285
|
-
{
|
|
286
|
-
[[AppLovinMAX shared] log: @"Attempting to load uninitialized native UI component for %@", self.adUnitId];
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
[self.uiComponent loadAd];
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
- (void)didMoveToWindow
|
|
294
|
-
{
|
|
295
|
-
[super didMoveToWindow];
|
|
296
|
-
|
|
297
|
-
// This view is unmounted
|
|
298
|
-
if ( !self.window )
|
|
299
|
-
{
|
|
300
|
-
if ( self.uiComponent )
|
|
301
|
-
{
|
|
302
|
-
[self.uiComponent detachAdView];
|
|
303
|
-
|
|
304
|
-
AppLovinMAXAdViewUIComponent *preloadedUIComponent = preloadedUIComponentInstances[self.adViewId];
|
|
305
|
-
|
|
306
|
-
if ( self.uiComponent == preloadedUIComponent )
|
|
307
|
-
{
|
|
308
|
-
[[AppLovinMAX shared] log: @"Unmounting the preloaded AdView (%@) for Ad Unit ID %@", self.adViewId, self.adUnitId];
|
|
309
|
-
|
|
310
|
-
self.uiComponent.autoRefreshEnabled = NO;
|
|
311
|
-
}
|
|
312
|
-
else
|
|
313
|
-
{
|
|
314
|
-
[[AppLovinMAX shared] log: @"Unmounting the AdView (%@) to destroy for Ad Unit ID %@", self.adViewId, self.adUnitId];
|
|
315
|
-
|
|
316
|
-
[uiComponentInstances removeObjectForKey: self.adViewId];
|
|
317
|
-
[self.uiComponent destroy];
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
self.uiComponent = nil;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
@end
|