Skip to content

Commit 1106edf

Browse files
author
Unity Ads Travis
committed
Release 2.2.0
1 parent 3e3a741 commit 1106edf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2146
-181
lines changed

Modules/module.modulemap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
framework module UnityAds {
22
umbrella header "UnityAds.h"
33
header "UnityAdsExtended.h"
4-
header "UnityAdsUnityDelegate.h"
4+
header "UADSPurchasing.h"
55

66
export *
77
module * { export * }

UnityAds/AdUnit/UADSAdUnitError.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ typedef NS_ENUM(NSInteger, UnityAdsAdUnitError) {
44
kUnityAdsAdUnitNull,
55
kUnityAdsAdUnitNoRotationZ,
66
kUnityAdsAdUnitUnknownView,
7+
kUnityAdsAdUnitHostViewControllerNull
78
};
89

910
NSString *NSStringFromAdUnitError(UnityAdsAdUnitError);

UnityAds/AdUnit/UADSAdUnitError.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
static NSString *unityAdsAdUnitNull = @"ADUNIT_NULL";
44
static NSString *unityAdsAdUnitNoRotationZ = @"NO_ROTATION_Z";
55
static NSString *unityAdsAdUnitUnknownView = @"UNKNOWN_VIEW";
6+
static NSString *unityAdsAdUnitHostViewControllerNull = @"HOST_VIEWCONTROLLER_NULL";
67

78
NSString *NSStringFromAdUnitError(UnityAdsAdUnitError error) {
89
switch (error) {
@@ -12,5 +13,7 @@
1213
return unityAdsAdUnitNoRotationZ;
1314
case kUnityAdsAdUnitUnknownView:
1415
return unityAdsAdUnitUnknownView;
16+
case kUnityAdsAdUnitHostViewControllerNull:
17+
return unityAdsAdUnitHostViewControllerNull;
1518
}
1619
}

UnityAds/AdUnit/UADSViewController.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
#import <UIKit/UIKit.h>
22
#import "UADSAVPlayer.h"
33
#import "UADSVideoView.h"
4+
#import "UADSWebPlayerView.h"
45

56
@interface UADSViewController : UIViewController
67

78
@property (nonatomic, strong) UADSAVPlayer *videoPlayer;
89
@property (nonatomic, strong) UADSVideoView *videoView;
10+
@property (nonatomic, strong) UADSWebPlayerView *webPlayerView;
911
@property (nonatomic, strong) NSArray<NSString*> *currentViews;
1012
@property (nonatomic, assign) int supportedOrientations;
1113
@property (nonatomic, assign) BOOL statusBarHidden;
1214
@property (nonatomic, assign) BOOL autorotate;
1315
@property (nonatomic, assign) BOOL transparent;
16+
@property (nonatomic, assign) BOOL homeIndicatorAutoHidden;
1417

15-
- (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(BOOL)statusBarHidden shouldAutorotate:(BOOL)shouldAutorotate isTransparent:(BOOL)isTransparent;
18+
- (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(BOOL)statusBarHidden shouldAutorotate:(BOOL)shouldAutorotate isTransparent:(BOOL)isTransparent homeIndicatorAutoHidden:(BOOL)homeIndicatorAutoHidden;
1619
- (void)setViews:(NSArray<NSString*>*)views;
1720
- (void)setTransform:(float)transform;
1821
- (void)setViewFrame:(NSString *)view x:(int)x y:(int)y width:(int)width height:(int)height;
22+
- (BOOL)prefersHomeIndicatorAutoHidden;
1923

2024
@end

UnityAds/AdUnit/UADSViewController.m

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#import "UADSWebViewApp.h"
33
#import "UADSAdUnitEvent.h"
44
#import "UADSWebViewEventCategory.h"
5+
#import "UADSApiWebPlayer.h"
56
#import "UnityAds.h"
67
#import <sys/utsname.h>
78

@@ -11,7 +12,7 @@ @interface UADSViewController ()
1112

1213
@implementation UADSViewController
1314

14-
- (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(BOOL)statusBarHidden shouldAutorotate:(BOOL)shouldAutorotate isTransparent:(BOOL)isTransparent {
15+
- (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(BOOL)statusBarHidden shouldAutorotate:(BOOL)shouldAutorotate isTransparent:(BOOL)isTransparent homeIndicatorAutoHidden:(BOOL)homeIndicatorAutoHidden {
1516
self = [super init];
1617

1718
if (self) {
@@ -20,6 +21,7 @@ - (instancetype)initWithViews:(NSArray *)views supportedOrientations:(NSNumber *
2021
[self setStatusBarHidden:statusBarHidden];
2122
[self setSupportedOrientations:[supportedOrientations intValue]];
2223
[self setAutorotate:shouldAutorotate];
24+
[self setHomeIndicatorAutoHidden:homeIndicatorAutoHidden];
2325
}
2426

2527
[[UADSWebViewApp getCurrentApp] sendEvent:NSStringFromAdUnitEvent(kUnityAdsViewControllerInit) category:NSStringFromWebViewEventCategory(kUnityAdsWebViewEventCategoryAdunit) param1:nil];
@@ -58,6 +60,7 @@ - (void)viewDidDisappear:(BOOL)animated {
5860

5961
[self destroyVideoPlayer];
6062
[self destroyVideoView];
63+
[self destroyWebPlayerView];
6164
[[[UADSWebViewApp getCurrentApp] webView] removeFromSuperview];
6265
[[UADSWebViewApp getCurrentApp] placeWebViewToBackgroundView];
6366
[[UADSWebViewApp getCurrentApp] sendEvent:NSStringFromAdUnitEvent(kUnityAdsViewControllerDidDisappear) category:NSStringFromWebViewEventCategory(kUnityAdsWebViewEventCategoryAdunit) param1:nil];
@@ -74,6 +77,8 @@ - (void)setViewFrame:(NSString *)view x:(int)x y:(int)y width:(int)width height:
7477
}
7578
else if ([view isEqualToString:@"webview"]) {
7679
targetView = [[UADSWebViewApp getCurrentApp] webView];
80+
} else if ([view isEqualToString:@"webplayer"]) {
81+
targetView = self.webPlayerView;
7782
}
7883

7984
if (targetView) {
@@ -107,10 +112,27 @@ - (void)setTransform:(float)transform {
107112
self.view.transform = CGAffineTransformMakeRotation(transform);
108113
}
109114

115+
- (void)setHomeIndicatorAutoHidden:(BOOL)homeIndicatorAutoHidden {
116+
_homeIndicatorAutoHidden = homeIndicatorAutoHidden;
117+
118+
SEL setNeedsUpdateOfHomeIndicatorAutoHiddenSelector = NSSelectorFromString(@"setNeedsUpdateOfHomeIndicatorAutoHidden");
119+
if([self respondsToSelector:setNeedsUpdateOfHomeIndicatorAutoHiddenSelector]) {
120+
IMP setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp = [self methodForSelector:setNeedsUpdateOfHomeIndicatorAutoHiddenSelector];
121+
if (setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp) {
122+
void (*setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorFunc)(id, SEL) = (void *)setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorImp;
123+
setNeedsUpdateOfHomeIndicatorAutoHiddenSelectorFunc(self, setNeedsUpdateOfHomeIndicatorAutoHiddenSelector);
124+
}
125+
}
126+
}
127+
110128
- (BOOL)prefersStatusBarHidden {
111129
return self.statusBarHidden;
112130
}
113131

132+
- (BOOL)prefersHomeIndicatorAutoHidden {
133+
return self.homeIndicatorAutoHidden;
134+
}
135+
114136
- (BOOL)isTransparent {
115137
return _transparent;
116138
}
@@ -141,6 +163,9 @@ - (void)setViews:(NSArray<NSString*>*)views {
141163
[self destroyVideoPlayer];
142164
[self destroyVideoView];
143165
}
166+
else if ([view isEqualToString:@"webplayer"]) {
167+
[self destroyWebPlayerView];
168+
}
144169
else if ([view isEqualToString:@"webview"]) {
145170
[[[UADSWebViewApp getCurrentApp] webView] removeFromSuperview];
146171
}
@@ -155,6 +180,10 @@ - (void)setViews:(NSArray<NSString*>*)views {
155180
[self createVideoPlayer];
156181
[self handleViewPlacement:self.videoView];
157182
}
183+
else if ([view isEqualToString:@"webplayer"]) {
184+
[self createWebPlayerView];
185+
[self handleViewPlacement:self.webPlayerView];
186+
}
158187
else if ([view isEqualToString:@"webview"]) {
159188
if ([UADSWebViewApp getCurrentApp]) {
160189
[self handleViewPlacement:[[UADSWebViewApp getCurrentApp] webView]];
@@ -209,6 +238,20 @@ - (void)destroyVideoView {
209238
self.videoView = NULL;
210239
}
211240

241+
- (void)createWebPlayerView {
242+
if (![self webPlayerView]) {
243+
[self setWebPlayerView:[[UADSWebPlayerView alloc] initWithFrame:[self getRect] webPlayerSettings:[UADSApiWebPlayer getWebPlayerSettings]]];
244+
[[self webPlayerView] setEventSettings:[UADSApiWebPlayer getWebPlayerEventSettings]];
245+
}
246+
}
247+
248+
- (void)destroyWebPlayerView {
249+
if ([self webPlayerView]) {
250+
[self.webPlayerView removeFromSuperview];
251+
}
252+
self.webPlayerView = nil;
253+
}
254+
212255
- (void)destroyVideoPlayer {
213256
if ([self videoPlayer]) {
214257
[self.videoPlayer stop];

UnityAds/Api/UADSApiAdUnit.m

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,49 @@ + (void)WebViewExposed_open:(NSArray *)views supportedOrientations:(NSNumber *)s
3333
}
3434

3535
+ (void)WebViewExposed_open:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(NSNumber *)statusBarHidden shouldAutorotate:(NSNumber *)shouldAutorotate isTransparent:(NSNumber *)isTransparent withAnimation:(NSNumber *)animated callback:(UADSWebViewCallback *)callback {
36+
[UADSApiAdUnit WebViewExposed_open:views supportedOrientations:supportedOrientations statusBarHidden:statusBarHidden shouldAutorotate:shouldAutorotate isTransparent:isTransparent withAnimation:animated homeIndicatorAutoHidden:[NSNumber numberWithBool:YES] callback:callback];
37+
}
38+
39+
+ (void)WebViewExposed_open:(NSArray *)views supportedOrientations:(NSNumber *)supportedOrientations statusBarHidden:(NSNumber *)statusBarHidden shouldAutorotate:(NSNumber *)shouldAutorotate isTransparent:(NSNumber *)isTransparent withAnimation:(NSNumber *)animated homeIndicatorAutoHidden:(NSNumber *)homeIndicatorAutoHidden callback:(UADSWebViewCallback *)callback {
3640
dispatch_async(dispatch_get_main_queue(), ^(void) {
3741
UADSLogDebug(@"PRESENTING VIEWCONTROLLER");
38-
UADSViewController *adUnit = [[UADSViewController alloc] initWithViews:views supportedOrientations:supportedOrientations statusBarHidden:[statusBarHidden boolValue] shouldAutorotate:[shouldAutorotate boolValue] isTransparent:[isTransparent boolValue]];
42+
UADSViewController *adUnit = [[UADSViewController alloc] initWithViews:views supportedOrientations:supportedOrientations statusBarHidden:[statusBarHidden boolValue] shouldAutorotate:[shouldAutorotate boolValue] isTransparent:[isTransparent boolValue] homeIndicatorAutoHidden: [homeIndicatorAutoHidden boolValue]];
3943
[adUnit setModalPresentationCapturesStatusBarAppearance:true];
4044
if (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_8_0 && [isTransparent boolValue]) {
4145
adUnit.modalPresentationStyle = UIModalPresentationOverCurrentContext;
42-
[UADSClientProperties getCurrentViewController].modalPresentationStyle = UIModalPresentationCurrentContext;
46+
if ([UADSClientProperties getCurrentViewController]) {
47+
[UADSClientProperties getCurrentViewController].modalPresentationStyle = UIModalPresentationCurrentContext;
48+
}
49+
else {
50+
[callback error:NSStringFromAdUnitError(kUnityAdsAdUnitHostViewControllerNull) arg1:nil];
51+
return;
52+
}
53+
}
54+
55+
if ([UADSClientProperties getCurrentViewController]) {
56+
[[UADSClientProperties getCurrentViewController] presentViewController:adUnit animated:[animated boolValue] completion:NULL];
57+
}
58+
else {
59+
[callback error:NSStringFromAdUnitError(kUnityAdsAdUnitHostViewControllerNull) arg1:nil];
60+
return;
4361
}
44-
[[UADSClientProperties getCurrentViewController] presentViewController:adUnit animated:[animated boolValue] completion:NULL];
4562
adUnitViewController = adUnit;
4663
});
47-
64+
4865
[callback invoke:nil];
4966
}
5067

5168
+ (void)WebViewExposed_close:(UADSWebViewCallback *)callback {
5269
if ([UADSApiAdUnit getAdUnit]) {
5370
dispatch_async(dispatch_get_main_queue(), ^{
54-
[[UADSClientProperties getCurrentViewController] dismissViewControllerAnimated:true completion:NULL];
71+
if ([UADSClientProperties getCurrentViewController]) {
72+
[[UADSClientProperties getCurrentViewController] dismissViewControllerAnimated:true completion:NULL];
73+
}
74+
else {
75+
[callback error:NSStringFromAdUnitError(kUnityAdsAdUnitHostViewControllerNull) arg1:nil];
76+
return;
77+
}
78+
5579
adUnitViewController = NULL;
5680
});
5781
[callback invoke:nil];
@@ -215,4 +239,23 @@ + (void)WebViewExposed_getViewFrame:(NSString *)view callback:(UADSWebViewCallba
215239
}
216240
}
217241

242+
+ (void)WebViewExposed_setHomeIndicatorAutoHidden:(NSNumber *)homeIndicatorAutoHidden callback:(UADSWebViewCallback *)callback {
243+
if ([UADSApiAdUnit getAdUnit]) {
244+
[[UADSApiAdUnit getAdUnit] setHomeIndicatorAutoHidden:[homeIndicatorAutoHidden boolValue]];
245+
[callback invoke:nil];
246+
}
247+
else {
248+
[callback error:NSStringFromAdUnitError(kUnityAdsAdUnitNull) arg1:nil];
249+
}
250+
}
251+
252+
+ (void)WebViewExposed_getHomeIndicatorAutoHidden:(UADSWebViewCallback *)callback {
253+
if ([UADSApiAdUnit getAdUnit]) {
254+
[callback invoke:[NSNumber numberWithBool:[[UADSApiAdUnit getAdUnit] homeIndicatorAutoHidden]], nil];
255+
}
256+
else {
257+
[callback error:NSStringFromAdUnitError(kUnityAdsAdUnitNull) arg1:nil];
258+
}
259+
}
260+
218261
@end

UnityAds/Api/UADSApiCache.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ typedef NS_ENUM(NSInteger, UnityAdsCacheError) {
77
kUnityAdsMalformedUrl,
88
kUnityAdsNetworkError,
99
kUnityAdsInvalidArgument,
10-
kUnityAdsUnsupportedEncoding
10+
kUnityAdsUnsupportedEncoding,
11+
kUnityAdsFileStateWrong
1112
};
1213

1314
NSString *NSStringFromCacheError(UnityAdsCacheError error);

UnityAds/Api/UADSApiCache.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,21 @@
2828
return @"INVALID_ARGUMENT";
2929
case kUnityAdsUnsupportedEncoding:
3030
return @"UNSUPPORTED_ENCODING";
31+
case kUnityAdsFileStateWrong:
32+
return @"FILE_STATE_WRONG";
3133
break;
3234
}
3335
}
3436

3537
@implementation UADSApiCache
3638

37-
+ (void)WebViewExposed_download:(NSString *)url fileId:(NSString *)fileId headers:(NSArray *)headers callback:(UADSWebViewCallback *)callback {
39+
+ (void)WebViewExposed_download:(NSString *)url fileId:(NSString *)fileId headers:(NSArray *)headers append:(NSNumber *)append callback:(UADSWebViewCallback *)callback {
3840
if ([UADSConnectivityUtils getNetworkStatus] == NotReachable) {
3941
[callback error:NSStringFromCacheError(kUnityAdsNoInternet) arg1:nil];
4042
return;
4143
}
4244

43-
BOOL success = [UADSCacheQueue download:url target:[UADSApiCache fileIdToFilename:fileId] headers:[UADSApiRequest getHeadersMap:headers]];
45+
BOOL success = [UADSCacheQueue download:url target:[UADSApiCache fileIdToFilename:fileId] headers:[UADSApiRequest getHeadersMap:headers] append:[append boolValue]];
4446
if (!success) {
4547
[callback error:NSStringFromCacheError(kUnityAdsFileAlreadyCaching) arg1:nil];
4648
}

UnityAds/Api/UADSApiDeviceInfo.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ + (void)WebViewExposed_getTimeZone:(NSNumber *)dst callback:(UADSWebViewCallback
8585
[callback invoke:[UADSDevice getTimeZone:[dst boolValue]], nil];
8686
}
8787

88+
+ (void)WebViewExposed_getTimeZoneOffset:(UADSWebViewCallback *)callback {
89+
[callback invoke:[NSNumber numberWithInteger:[UADSDevice getTimeZoneOffset]], nil];
90+
}
91+
8892
+ (void)WebViewExposed_getSystemLanguage:(UADSWebViewCallback *)callback {
8993
[callback invoke:[UADSDevice getPreferredLocalization], nil];
9094
}
@@ -155,6 +159,16 @@ + (void)WebViewExposed_getSensorList:(UADSWebViewCallback *)callback {
155159
}
156160
}
157161

162+
+ (void)WebViewExposed_getProcessInfo:(UADSWebViewCallback *)callback {
163+
NSDictionary* processInfo = [UADSDevice getProcessInfo];
164+
if (processInfo) {
165+
[callback invoke:[UADSDevice getProcessInfo], nil];
166+
} else {
167+
[callback error:NSStringFromDeviceError(kUnityAdsCouldntGetProcessInfo) arg1:nil];
168+
}
169+
170+
}
171+
158172
+ (void)WebViewExposed_getStatusBarWidth:(UADSWebViewCallback *)callback {
159173
NSNumber *width = [NSNumber numberWithFloat:[UIApplication sharedApplication].statusBarFrame.size.width];
160174
[callback invoke:width, nil];
@@ -196,4 +210,8 @@ + (void)WebViewExposed_unregisterVolumeChangeListener:(UADSWebViewCallback *)cal
196210
[callback invoke:nil];
197211
}
198212

213+
+ (void)WebViewExposed_getCPUCount:(UADSWebViewCallback *)callback {
214+
[callback invoke:[NSNumber numberWithUnsignedInteger:[UADSDevice getCPUCount]], nil];
215+
}
216+
199217
@end

UnityAds/Api/UADSApiListener.m

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#import "UADSClientProperties.h"
44
#import "NSString+UnityAdsError.h"
55
#import "UnityAdsExtended.h"
6-
#import "UnityAdsUnityDelegate.h"
76
#import "UADSPlacement.h"
87

98
UnityAdsFinishState UnityAdsFinishStateFromNSString (NSString* state) {
@@ -89,18 +88,6 @@ + (void)WebViewExposed_sendPlacementStateChangedEvent:(NSString *)placementId ol
8988
[callback invoke:nil];
9089
}
9190

92-
+ (void)WebViewExposed_sendInitiatePurchaseEvent:(NSString *)eventString callback:(UADSWebViewCallback *)callback {
93-
dispatch_async(dispatch_get_main_queue(), ^{
94-
if ([UADSClientProperties getDelegate] && [[UADSClientProperties getDelegate] conformsToProtocol:@protocol(UnityAdsUnityDelegate)]) {
95-
if ([(id<UnityAdsUnityDelegate>)[UADSClientProperties getDelegate] respondsToSelector:@selector(unityAdsDidInitiatePurchase:)]) {
96-
[(id<UnityAdsUnityDelegate>)[UADSClientProperties getDelegate] unityAdsDidInitiatePurchase:eventString];
97-
}
98-
}
99-
});
100-
101-
[callback invoke:nil];
102-
}
103-
10491
+ (void)WebViewExposed_sendErrorEvent:(NSString *)errorString message:(NSString *)message callback:(UADSWebViewCallback *)callback {
10592
dispatch_async(dispatch_get_main_queue(), ^{
10693
if ([UADSClientProperties getDelegate]) {

0 commit comments

Comments
 (0)