296 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
		
			
		
	
	
			296 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
|  | #import "AmazonManager.h" | ||
|  | 
 | ||
|  | @implementation AmazonManager | ||
|  | 
 | ||
|  | #pragma mark NSObject | ||
|  | 
 | ||
|  | + (AmazonManager*)sharedManager | ||
|  | { | ||
|  |     static AmazonManager* sharedManager = nil; | ||
|  | 
 | ||
|  |     if (!sharedManager) | ||
|  |         sharedManager = [[AmazonManager alloc] init]; | ||
|  | 
 | ||
|  |     return sharedManager; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)initialize:(NSString*)keywords | ||
|  | { | ||
|  |     [[DTBAds sharedInstance] setAppKey: keywords]; | ||
|  | } | ||
|  | 
 | ||
|  | - (BOOL)isInitialized | ||
|  | { | ||
|  |     return [[DTBAds sharedInstance] isReady]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setUseGeoLocation:(bool)flag | ||
|  | { | ||
|  |     [[DTBAds sharedInstance] setUseGeoLocation:flag]; | ||
|  | } | ||
|  | 
 | ||
|  | - (BOOL)getUseGeoLocation | ||
|  | { | ||
|  |     return [[DTBAds sharedInstance] useGeoLocation]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setLogLevel:(int)logLevel | ||
|  | { | ||
|  |     DTBLogLevel level = (DTBLogLevel) logLevel; | ||
|  |     [[DTBAds sharedInstance] setLogLevel:level]; | ||
|  | } | ||
|  | 
 | ||
|  | - (int)getLogLevel | ||
|  | { | ||
|  |     return 0; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setTestMode:(bool)flag | ||
|  | { | ||
|  |     [[DTBAds sharedInstance] setTestMode:flag]; | ||
|  | } | ||
|  | 
 | ||
|  | - (BOOL)isTestModeEnabled | ||
|  | { | ||
|  |     return [[DTBAds sharedInstance] testMode]; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBAdSize*)createBannerAdSize:(int)width height:(int)height uuid:(NSString*)uuid{ | ||
|  |     return [[DTBAdSize alloc] initBannerAdSizeWithWidth:width height:height andSlotUUID:uuid]; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBAdSize*)createVideoAdSize:(int)width height:(int)height uuid:(NSString*)uuid{ | ||
|  |     return [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:width height: height andSlotUUID: uuid];; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBAdSize*)createInterstitialAdSize:(NSString*)uuid{ | ||
|  |     return [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID:uuid]; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBAdLoader*)createAdLoader{ | ||
|  |     return [DTBAdLoader new]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setSizes:(DTBAdLoader*)adLoader size:(DTBAdSize*)size{ | ||
|  |     [adLoader setSizes:size, nil]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)loadAd:(DTBAdLoader*)adLoader callback:(AmazonUnityCallback*)callback{ | ||
|  |     [adLoader loadAd:callback]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)loadSmartBanner:(DTBAdLoader*)adLoader callback:(AmazonUnityCallback*)callback{ | ||
|  |     [adLoader loadSmartBanner:callback]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setMRAIDPolicy:(DTBMRAIDPolicy)policy | ||
|  | { | ||
|  |     [DTBAds sharedInstance].mraidPolicy = policy; | ||
|  | } | ||
|  | 
 | ||
|  | - (int) getMRAIDPolicy{ | ||
|  |     return [DTBAds sharedInstance].mraidPolicy; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)setMRAIDSupportedVersions:(NSString* _Nullable)versions | ||
|  | { | ||
|  |     [DTBAds sharedInstance].mraidCustomVersions = nil; | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | - (NSString *)jsonFromDict:(NSDictionary *)dict { | ||
|  |     NSError *error; | ||
|  |     NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict | ||
|  |                                                        options:0 | ||
|  |                                                          error:&error]; | ||
|  |     if (!jsonData) { | ||
|  |         NSLog(@"Error converting JSON from VCS response dict: %@", error); | ||
|  |         return @""; | ||
|  |     } else { | ||
|  |         return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | - (AmazonUnityCallback*)createCallback{ | ||
|  |     AmazonUnityCallback* newCallback = [[AmazonUnityCallback alloc] init]; | ||
|  |     return newCallback; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBBannerDelegate*)createBannerDelegate{ | ||
|  |     return [[DTBBannerDelegate alloc] init]; | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBInterstitialDelegate*)createInterstitialDelegate{ | ||
|  |     return [[DTBInterstitialDelegate alloc] init]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)createFetchManager:(DTBAdLoader*)adLoader isSmartBanner:(BOOL)isSmartBanner{ | ||
|  |     NSError *error = [DTBFetchFactory.sharedInstance createFetchManagerForLoader:adLoader isSmartBanner:isSmartBanner]; | ||
|  |     if(error == nil){ | ||
|  |         NSLog(@"FetchManager created"); | ||
|  |     } else { | ||
|  |         NSLog(@"failed with error = %@", [error localizedDescription]); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | - (DTBFetchManager*)getFetchManager:(int)slotType isSmartBanner:(BOOL)isSmartBanner{ | ||
|  |     if( !isSmartBanner ){ | ||
|  |         return [[DTBFetchFactory sharedInstance] fetchManagerBySlotType:(DTBSlotType)slotType]; | ||
|  |     }else { | ||
|  |         return [[DTBFetchFactory sharedInstance] fetchManagerBySlotType:SLOT_SMART]; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | -(void)fetchManagerPop:(DTBFetchManager*)fetchManager{ | ||
|  |     [fetchManager pop]; | ||
|  | } | ||
|  |   | ||
|  | -(void)putCustomTarget:(DTBAdLoader*)adLoader key:(NSString*)key value:(NSString*)value{ | ||
|  |     [adLoader putCustomTarget:value withKey:key]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)startFetchManager:(DTBFetchManager*)fetchManager{ | ||
|  |     [fetchManager start]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)stopFetchManager:(DTBFetchManager*)fetchManager{ | ||
|  |     [fetchManager stop]; | ||
|  | } | ||
|  | 
 | ||
|  | -(BOOL)isEmptyFetchManager:(DTBFetchManager*)fetchManager{ | ||
|  |     return [fetchManager isEmpty]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)destroyFetchManager:(int)slotType{ | ||
|  |     [[DTBFetchFactory sharedInstance] removeFetchManagerForSlotType:(DTBSlotType)slotType]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setSlotGroup:(DTBAdLoader*)adLoader  slotGtoupName:(NSString*)slotGtoupName{ | ||
|  |     [adLoader setSlotGroup:slotGtoupName]; | ||
|  | } | ||
|  | 
 | ||
|  | -(DTBSlotGroup*)createSlotGroup:(NSString*)slotGroupName{ | ||
|  |      DTBSlotGroup *group = [[DTBSlotGroup alloc] initWithName:slotGroupName]; | ||
|  |     return group; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)addSlot:(DTBSlotGroup*)slot size:(DTBAdSize*)size{ | ||
|  |     [slot addSize:size]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)addSlotGroup:(DTBSlotGroup*)group{ | ||
|  |     [DTBAds.sharedInstance addSlotGroup:group]; | ||
|  | } | ||
|  | 
 | ||
|  | -(NSString*)fetchMoPubKeywords:(DTBAdResponse*)response { | ||
|  |     return [response keywordsForMopub]; | ||
|  | } | ||
|  | 
 | ||
|  | -(NSString*)fetchAmznSlots:(DTBAdResponse *)response { | ||
|  |     return [response amznSlots]; | ||
|  | } | ||
|  | 
 | ||
|  | -(int)fetchAdWidth:(DTBAdResponse *)response { | ||
|  |     DTBAdSize *adSize = [response adSize]; | ||
|  |     return adSize.width; | ||
|  | } | ||
|  | 
 | ||
|  | -(int)fetchAdHeight:(DTBAdResponse *)response { | ||
|  |     DTBAdSize *adSize = [response adSize]; | ||
|  |     return adSize.height; | ||
|  | } | ||
|  | 
 | ||
|  | -(NSString*)fetchMediationHints:(DTBAdResponse*)response isSmart:(BOOL)isSmart{ | ||
|  |     NSError * err; | ||
|  |     NSDictionary * hint = [response mediationHints:isSmart]; | ||
|  |     NSMutableDictionary *mHint = [hint mutableCopy]; | ||
|  |     NSDate* myDate = mHint[@"load_start"]; | ||
|  |     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; | ||
|  |     [dateFormatter setDateFormat:@"dd-MM-yyyy"]; | ||
|  |     NSString *stringDate = [dateFormatter stringFromDate:myDate]; | ||
|  |     [mHint setValue:stringDate forKey:@"load_start"]; | ||
|  |     NSData * jsonData = [NSJSONSerialization  dataWithJSONObject:mHint options:0 error:&err]; | ||
|  |     NSString * mediationHints = [[NSString alloc] initWithData:jsonData   encoding:NSUTF8StringEncoding]; | ||
|  |     return mediationHints; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setCMPFlavor:(DTBCMPFlavor)cFlavor { | ||
|  |     [DTBAds.sharedInstance setCmpFlavor:cFlavor]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setConsentStatus:(DTBConsentStatus)consentStatus{ | ||
|  |     [DTBAds.sharedInstance setConsentStatus:consentStatus]; | ||
|  | } | ||
|  | 
 | ||
|  | -(NSMutableArray*)createArray{ | ||
|  |     return [[NSMutableArray alloc] init]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)addToArray:(NSMutableArray*)dictionary item:(int)item{ | ||
|  |     NSNumber* num = [NSNumber numberWithInt:item]; | ||
|  |     [dictionary addObject:num]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setVendorList:(NSMutableArray*)dictionary{ | ||
|  |     [DTBAds.sharedInstance setVendorList:dictionary]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setAutoRefresh:(DTBAdLoader*)adLoader{ | ||
|  |     [adLoader setAutoRefresh]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setAutoRefresh:(DTBAdLoader*)adLoader secs:(int)secs{ | ||
|  |     [adLoader setAutoRefresh:secs]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)pauseAutorefresh:(DTBAdLoader*)adLoader{ | ||
|  |     [adLoader pauseAutorefresh]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)stopAutoRefresh:(DTBAdLoader*)adLoader{ | ||
|  |     [adLoader stop]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)resumeAutoRefresh:(DTBAdLoader*)adLoader{ | ||
|  |     [adLoader resumeAutorefresh]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setAPSPublisherExtendedIdFeatureEnabled:(BOOL)isEnabled { | ||
|  |     [DTBAds.sharedInstance setAPSPublisherExtendedIdFeatureEnabled:isEnabled]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)addCustomAttribute:(NSString *)withKey value:(id)value { | ||
|  |     [DTBAds.sharedInstance addCustomAttribute:withKey value:value]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)removeCustomAttribute:(NSString *)forKey { | ||
|  |     [DTBAds.sharedInstance removeCustomAttribute:forKey]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setAdNetworkInfo:(DTBAdNetworkInfo *)dtbAdNetworkInfo { | ||
|  |     [[DTBAds sharedInstance] setAdNetworkInfo:dtbAdNetworkInfo]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)setLocalExtras:(NSString *)adUnitId localExtras:(NSDictionary *)localExtras { | ||
|  |     [DTBAds setLocalExtras:adUnitId localExtras:localExtras]; | ||
|  | } | ||
|  | 
 | ||
|  | -(NSDictionary *)getMediationHintsDict:(DTBAdResponse*)response isSmart:(BOOL)isSmart{ | ||
|  |     return [response mediationHints:isSmart]; | ||
|  | } | ||
|  | 
 | ||
|  | -(void)showInterstitialAd:(DTBAdInterstitialDispatcher*)dispatcher { | ||
|  |     [dispatcher showFromController:[self unityRootViewController]]; | ||
|  | } | ||
|  | 
 | ||
|  | -(UIViewController *)unityRootViewController { | ||
|  |     id<UIApplicationDelegate> appDelegate = [UIApplication sharedApplication].delegate; | ||
|  |     // @TODO Check whether the appDelegate implements rootViewController. Refer to CR-68240623 for discussions. | ||
|  |     if ([appDelegate respondsToSelector:@selector(rootViewController)]) { | ||
|  |         return [[[UIApplication sharedApplication].delegate window] rootViewController]; | ||
|  |     } | ||
|  |     return nil; | ||
|  | } | ||
|  | 
 | ||
|  | @end |