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 ];
0 commit comments