Merge branch 'feature/update-for-iOS6' into develop
This commit is contained in:
@@ -39,10 +39,10 @@
|
|||||||
#define MAX_CHANNEL 128
|
#define MAX_CHANNEL 128
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
JGE_ERR_CANT_OPEN_FILE = -1,
|
JGE_ERR_CANT_OPEN_FILE = -1,
|
||||||
JGE_ERR_PNG = -2,
|
JGE_ERR_PNG = -2,
|
||||||
JGE_ERR_MALLOC_FAILED = -4,
|
JGE_ERR_MALLOC_FAILED = -4,
|
||||||
JGE_ERR_GENERIC = -5,
|
JGE_ERR_GENERIC = -5,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef PSP
|
#ifdef PSP
|
||||||
@@ -80,20 +80,20 @@ enum {
|
|||||||
// #define BLEND_OPTION_ADD BLEND_COLORADD
|
// #define BLEND_OPTION_ADD BLEND_COLORADD
|
||||||
// #define BLEND_OPTION_BLEND (BLEND_COLORADD | BLEND_ALPHABLEND | BLEND_NOZWRITE)
|
// #define BLEND_OPTION_BLEND (BLEND_COLORADD | BLEND_ALPHABLEND | BLEND_NOZWRITE)
|
||||||
#else
|
#else
|
||||||
#define DEFAULT_BLEND GU_TFX_MODULATE
|
#define DEFAULT_BLEND GU_TFX_MODULATE
|
||||||
#define BLEND_OPTION_ADD GU_TFX_ADD
|
#define BLEND_OPTION_ADD GU_TFX_ADD
|
||||||
#define BLEND_OPTION_BLEND GU_TFX_BLEND
|
#define BLEND_OPTION_BLEND GU_TFX_BLEND
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined WIN32) && (!defined LINUX)
|
#if (defined WIN32) && (!defined LINUX)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(LINUX) && (!defined WIN32) || defined(IOS) || defined (ANDROID)
|
#if defined(LINUX) && (!defined WIN32) || defined(IOS) || defined (ANDROID)
|
||||||
typedef uint8_t byte;
|
typedef uint8_t byte;
|
||||||
typedef uint32_t DWORD;
|
typedef uint32_t DWORD;
|
||||||
typedef uint8_t BYTE;
|
typedef uint8_t BYTE;
|
||||||
#ifndef IOS
|
#ifndef IOS
|
||||||
typedef bool BOOL;
|
typedef bool BOOL;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -101,16 +101,16 @@ enum {
|
|||||||
|
|
||||||
#ifndef QT_CONFIG
|
#ifndef QT_CONFIG
|
||||||
#if defined (IOS)
|
#if defined (IOS)
|
||||||
#import <OpenGLES/ES2/gl.h>
|
#import <OpenGLES/ES2/gl.h>
|
||||||
#import <OpenGLES/ES2/glext.h>
|
#import <OpenGLES/ES2/glext.h>
|
||||||
#import <OpenGLES/ES1/gl.h>
|
#import <OpenGLES/ES1/gl.h>
|
||||||
# import <OpenGLES/ES1/glext.h>
|
#import <OpenGLES/ES1/glext.h>
|
||||||
#elif defined (ANDROID)
|
#elif defined (ANDROID)
|
||||||
#include <GLES/gl.h>
|
#include <GLES/gl.h>
|
||||||
#include <GLES/glext.h>
|
#include <GLES/glext.h>
|
||||||
#elif defined (WIN32) || defined (LINUX)
|
#elif defined (WIN32) || defined (LINUX)
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glu.h>
|
#include <GL/glu.h>
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
# include <QtOpenGL>
|
# include <QtOpenGL>
|
||||||
@@ -128,90 +128,90 @@ enum {
|
|||||||
|
|
||||||
#if defined (PSP)
|
#if defined (PSP)
|
||||||
|
|
||||||
#ifndef ABGR8888
|
#ifndef ABGR8888
|
||||||
#define ABGR8888
|
#define ABGR8888
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined (ABGR8888)
|
#if defined (ABGR8888)
|
||||||
#define PIXEL_TYPE u32
|
#define PIXEL_TYPE u32
|
||||||
#ifndef ARGB
|
#ifndef ARGB
|
||||||
#define ARGB(a, r, g, b) (PIXEL_TYPE)((a << 24) | (b << 16) | (g << 8) | r) // macro to assemble pixels in correct format
|
#define ARGB(a, r, g, b) (PIXEL_TYPE)((a << 24) | (b << 16) | (g << 8) | r) // macro to assemble pixels in correct format
|
||||||
#endif
|
#endif
|
||||||
#define MAKE_COLOR(a, c) (a << 24 | c)
|
#define MAKE_COLOR(a, c) (a << 24 | c)
|
||||||
#define MASK_ALPHA 0xFF000000 // masks for accessing individual pixels
|
#define MASK_ALPHA 0xFF000000 // masks for accessing individual pixels
|
||||||
#define MASK_BLUE 0x00FF0000
|
#define MASK_BLUE 0x00FF0000
|
||||||
#define MASK_GREEN 0x0000FF00
|
#define MASK_GREEN 0x0000FF00
|
||||||
#define MASK_RED 0x000000FF
|
#define MASK_RED 0x000000FF
|
||||||
|
|
||||||
#define PIXEL_SIZE 4
|
#define PIXEL_SIZE 4
|
||||||
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_8888
|
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_8888
|
||||||
|
|
||||||
#define BUFFER_FORMAT GU_PSM_8888
|
#define BUFFER_FORMAT GU_PSM_8888
|
||||||
#define TEXTURE_FORMAT GU_PSM_8888
|
#define TEXTURE_FORMAT GU_PSM_8888
|
||||||
#define TEXTURE_COLOR_FORMAT GU_COLOR_8888
|
#define TEXTURE_COLOR_FORMAT GU_COLOR_8888
|
||||||
|
|
||||||
|
|
||||||
#elif defined (ABGR5551)
|
#elif defined (ABGR5551)
|
||||||
|
|
||||||
#ifndef ARGB
|
#ifndef ARGB
|
||||||
#define ARGB(a, r, g, b) ((r >> 3) | ((g >> 3) << 5) | ((b >> 3) << 10) | ((a >> 7) << 15))
|
#define ARGB(a, r, g, b) ((r >> 3) | ((g >> 3) << 5) | ((b >> 3) << 10) | ((a >> 7) << 15))
|
||||||
#endif
|
#endif
|
||||||
#define MAKE_COLOR(a, c) (((a>>7)<<15) | c)
|
#define MAKE_COLOR(a, c) (((a>>7)<<15) | c)
|
||||||
#define MASK_ALPHA 0x8000
|
#define MASK_ALPHA 0x8000
|
||||||
#define MASK_BLUE 0x7C00
|
#define MASK_BLUE 0x7C00
|
||||||
#define MASK_GREEN 0x03E0
|
#define MASK_GREEN 0x03E0
|
||||||
#define MASK_RED 0x001F
|
#define MASK_RED 0x001F
|
||||||
#define PIXEL_TYPE u16
|
#define PIXEL_TYPE u16
|
||||||
#define PIXEL_SIZE 2
|
#define PIXEL_SIZE 2
|
||||||
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_5551
|
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_5551
|
||||||
|
|
||||||
#define BUFFER_FORMAT GU_PSM_8888
|
#define BUFFER_FORMAT GU_PSM_8888
|
||||||
#define TEXTURE_FORMAT GU_PSM_5551
|
#define TEXTURE_FORMAT GU_PSM_5551
|
||||||
#define TEXTURE_COLOR_FORMAT GU_COLOR_5551
|
#define TEXTURE_COLOR_FORMAT GU_COLOR_5551
|
||||||
|
|
||||||
#elif defined (ABGR4444)
|
#elif defined (ABGR4444)
|
||||||
#ifndef ARGB
|
#ifndef ARGB
|
||||||
#define ARGB(a, r, g, b) ((r >> 4) | ((g >> 4) << 4) | ((b >> 4) << 8) | ((a >> 4) << 12))
|
#define ARGB(a, r, g, b) ((r >> 4) | ((g >> 4) << 4) | ((b >> 4) << 8) | ((a >> 4) << 12))
|
||||||
#endif
|
#endif
|
||||||
#define MAKE_COLOR(a, c) (((a>>4)<<12) | c)
|
#define MAKE_COLOR(a, c) (((a>>4)<<12) | c)
|
||||||
#define MASK_ALPHA 0xF000
|
#define MASK_ALPHA 0xF000
|
||||||
#define MASK_BLUE 0x0F00
|
#define MASK_BLUE 0x0F00
|
||||||
#define MASK_GREEN 0x00F0
|
#define MASK_GREEN 0x00F0
|
||||||
#define MASK_RED 0x000F
|
#define MASK_RED 0x000F
|
||||||
#define PIXEL_TYPE u16
|
#define PIXEL_TYPE u16
|
||||||
#define PIXEL_SIZE 2
|
#define PIXEL_SIZE 2
|
||||||
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_4444
|
#define PIXEL_FORMAT PSP_DISPLAY_PIXEL_FORMAT_4444
|
||||||
|
|
||||||
#define BUFFER_FORMAT GU_PSM_4444
|
#define BUFFER_FORMAT GU_PSM_4444
|
||||||
#define TEXTURE_FORMAT GU_PSM_4444
|
#define TEXTURE_FORMAT GU_PSM_4444
|
||||||
#define TEXTURE_COLOR_FORMAT GU_COLOR_4444
|
#define TEXTURE_COLOR_FORMAT GU_COLOR_4444
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FRAME_BUFFER_WIDTH 512
|
#define FRAME_BUFFER_WIDTH 512
|
||||||
#define FRAME_BUFFER_SIZE FRAME_BUFFER_WIDTH*SCREEN_HEIGHT*PIXEL_SIZE
|
#define FRAME_BUFFER_SIZE FRAME_BUFFER_WIDTH*SCREEN_HEIGHT*PIXEL_SIZE
|
||||||
|
|
||||||
#define SLICE_SIZE_F 64.0f
|
#define SLICE_SIZE_F 64.0f
|
||||||
typedef unsigned int DWORD;
|
typedef unsigned int DWORD;
|
||||||
|
|
||||||
#define BLEND_ZERO 0x1000
|
#define BLEND_ZERO 0x1000
|
||||||
#define BLEND_ONE 0x1002
|
#define BLEND_ONE 0x1002
|
||||||
#define BLEND_SRC_COLOR GU_SRC_COLOR
|
#define BLEND_SRC_COLOR GU_SRC_COLOR
|
||||||
#define BLEND_ONE_MINUS_SRC_COLOR GU_ONE_MINUS_SRC_COLOR
|
#define BLEND_ONE_MINUS_SRC_COLOR GU_ONE_MINUS_SRC_COLOR
|
||||||
#define BLEND_SRC_ALPHA GU_SRC_ALPHA
|
#define BLEND_SRC_ALPHA GU_SRC_ALPHA
|
||||||
#define BLEND_ONE_MINUS_SRC_ALPHA GU_ONE_MINUS_SRC_ALPHA
|
#define BLEND_ONE_MINUS_SRC_ALPHA GU_ONE_MINUS_SRC_ALPHA
|
||||||
#define BLEND_DST_ALPHA GU_DST_ALPHA
|
#define BLEND_DST_ALPHA GU_DST_ALPHA
|
||||||
#define BLEND_ONE_MINUS_DST_ALPHA GU_ONE_MINUS_DST_ALPHA
|
#define BLEND_ONE_MINUS_DST_ALPHA GU_ONE_MINUS_DST_ALPHA
|
||||||
#define BLEND_DST_COLOR GU_DST_COLOR
|
#define BLEND_DST_COLOR GU_DST_COLOR
|
||||||
#define BLEND_ONE_MINUS_DST_COLOR GU_ONE_MINUS_DST_COLOR
|
#define BLEND_ONE_MINUS_DST_COLOR GU_ONE_MINUS_DST_COLOR
|
||||||
#define BLEND_SRC_ALPHA_SATURATE BLEND_ONE
|
#define BLEND_SRC_ALPHA_SATURATE BLEND_ONE
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ScePspFVector2 texture;
|
ScePspFVector2 texture;
|
||||||
ScePspFVector3 pos;
|
ScePspFVector3 pos;
|
||||||
} PSPVertex3D;
|
} PSPVertex3D;
|
||||||
|
|
||||||
#else //non PSP
|
#else //non PSP
|
||||||
|
|
||||||
@@ -223,34 +223,34 @@ typedef uint16_t u16;
|
|||||||
typedef uint32_t u32;
|
typedef uint32_t u32;
|
||||||
|
|
||||||
|
|
||||||
#define BLEND_ZERO GL_ZERO
|
#define BLEND_ZERO GL_ZERO
|
||||||
#define BLEND_ONE GL_ONE
|
#define BLEND_ONE GL_ONE
|
||||||
#define BLEND_SRC_COLOR GL_SRC_COLOR
|
#define BLEND_SRC_COLOR GL_SRC_COLOR
|
||||||
#define BLEND_ONE_MINUS_SRC_COLOR GL_ONE_MINUS_SRC_COLOR
|
#define BLEND_ONE_MINUS_SRC_COLOR GL_ONE_MINUS_SRC_COLOR
|
||||||
#define BLEND_SRC_ALPHA GL_SRC_ALPHA
|
#define BLEND_SRC_ALPHA GL_SRC_ALPHA
|
||||||
#define BLEND_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
#define BLEND_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||||
#define BLEND_DST_ALPHA GL_DST_ALPHA
|
#define BLEND_DST_ALPHA GL_DST_ALPHA
|
||||||
#define BLEND_ONE_MINUS_DST_ALPHA GL_ONE_MINUS_DST_ALPHA
|
#define BLEND_ONE_MINUS_DST_ALPHA GL_ONE_MINUS_DST_ALPHA
|
||||||
#define BLEND_DST_COLOR GL_DST_COLOR
|
#define BLEND_DST_COLOR GL_DST_COLOR
|
||||||
#define BLEND_ONE_MINUS_DST_COLOR GL_ONE_MINUS_DST_COLOR
|
#define BLEND_ONE_MINUS_DST_COLOR GL_ONE_MINUS_DST_COLOR
|
||||||
#define BLEND_SRC_ALPHA_SATURATE GL_SRC_ALPHA_SATURATE
|
#define BLEND_SRC_ALPHA_SATURATE GL_SRC_ALPHA_SATURATE
|
||||||
|
|
||||||
#define ARGB(a, r, g, b) ((PIXEL_TYPE)((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
|
#define ARGB(a, r, g, b) ((PIXEL_TYPE)((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
|
||||||
#define RGBA(r, g, b, a) ((PIXEL_TYPE)((a) << 24) | ((b) << 16) | ((g) << 8) | (r))
|
#define RGBA(r, g, b, a) ((PIXEL_TYPE)((a) << 24) | ((b) << 16) | ((g) << 8) | (r))
|
||||||
|
|
||||||
#define TEXTURE_FORMAT 0
|
#define TEXTURE_FORMAT 0
|
||||||
#define GU_PSM_8888 0
|
#define GU_PSM_8888 0
|
||||||
#define GU_PSM_5551 0
|
#define GU_PSM_5551 0
|
||||||
#define GU_PSM_4444 0
|
#define GU_PSM_4444 0
|
||||||
#define GU_PSM_5650 0
|
#define GU_PSM_5650 0
|
||||||
#define PIXEL_TYPE DWORD
|
#define PIXEL_TYPE DWORD
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum Buttons
|
typedef enum Buttons
|
||||||
{
|
{
|
||||||
JGE_BTN_NONE = 0, // No button pressed
|
JGE_BTN_NONE = 0, // No button pressed
|
||||||
JGE_BTN_QUIT, // Home on PSP
|
JGE_BTN_QUIT, // Home on PSP
|
||||||
JGE_BTN_MENU, // Start on PSP
|
JGE_BTN_MENU, // Start on PSP
|
||||||
@@ -270,7 +270,7 @@ typedef enum Buttons
|
|||||||
JGE_BTN_FULLSCREEN, // Switch to fullscreen (obviously, PC only)
|
JGE_BTN_FULLSCREEN, // Switch to fullscreen (obviously, PC only)
|
||||||
|
|
||||||
JGE_BTN_MAX = JGE_BTN_FULLSCREEN + 1
|
JGE_BTN_MAX = JGE_BTN_FULLSCREEN + 1
|
||||||
} JButton;
|
} JButton;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import <QuartzCore/QuartzCore.h>
|
#import <QuartzCore/QuartzCore.h>
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
#import "EAGLViewController.h"
|
#import "EAGLViewController.h"
|
||||||
#import "EAGLView.h"
|
#import "EAGLView.h"
|
||||||
#import "ESRenderer.h"
|
#import "ESRenderer.h"
|
||||||
@@ -8,9 +7,8 @@
|
|||||||
// This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
|
// This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
|
||||||
// The view content is basically an EAGL surface you render your OpenGL scene into.
|
// The view content is basically an EAGL surface you render your OpenGL scene into.
|
||||||
// Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
|
// Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
|
||||||
@interface EAGLView : UIView<AdWhirlDelegate,UIGestureRecognizerDelegate>
|
@interface EAGLView : UIView<UIGestureRecognizerDelegate>
|
||||||
{
|
{
|
||||||
AdWhirlView *adView;
|
|
||||||
//This is a trick, AdMob uses a viewController to display its Ads, trust me, you'll need this
|
//This is a trick, AdMob uses a viewController to display its Ads, trust me, you'll need this
|
||||||
EAGLViewController *viewController;
|
EAGLViewController *viewController;
|
||||||
|
|
||||||
@@ -27,7 +25,6 @@
|
|||||||
id displayLink;
|
id displayLink;
|
||||||
CGPoint currentLocation;
|
CGPoint currentLocation;
|
||||||
}
|
}
|
||||||
@property (nonatomic, retain) AdWhirlView *adView;
|
|
||||||
@property (readonly, nonatomic, getter=isAnimating) BOOL animating;
|
@property (readonly, nonatomic, getter=isAnimating) BOOL animating;
|
||||||
@property (nonatomic) NSInteger animationFrameInterval;
|
@property (nonatomic) NSInteger animationFrameInterval;
|
||||||
@property (nonatomic, readwrite) CGPoint currentLocation;
|
@property (nonatomic, readwrite) CGPoint currentLocation;
|
||||||
@@ -37,8 +34,6 @@
|
|||||||
- (void)drawView:(id)sender;
|
- (void)drawView:(id)sender;
|
||||||
|
|
||||||
- (void)updateKeyboard: (NSString *) inputString;
|
- (void)updateKeyboard: (NSString *) inputString;
|
||||||
- (void)removeAds;
|
|
||||||
- (void)displayAds;
|
|
||||||
|
|
||||||
- (void)destroyGame;
|
- (void)destroyGame;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
#include "GameApp.h"
|
#include "GameApp.h"
|
||||||
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "wagicAppDelegate.h"
|
#import "wagicAppDelegate.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -67,15 +66,10 @@ void DestroyGame(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark Ad management constants
|
|
||||||
static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPHONE = @"b86aba511597401ca6b41c1626aa3013";
|
|
||||||
static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170c8d268f";
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
|
|
||||||
@implementation EAGLView
|
@implementation EAGLView
|
||||||
|
|
||||||
@synthesize adView;
|
|
||||||
@synthesize animating;
|
@synthesize animating;
|
||||||
@dynamic animationFrameInterval;
|
@dynamic animationFrameInterval;
|
||||||
@synthesize currentLocation;
|
@synthesize currentLocation;
|
||||||
@@ -91,7 +85,6 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
[renderer release];
|
[renderer release];
|
||||||
[self removeAds];
|
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -635,30 +628,6 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//These are the methods for the AdWhirl Delegate, you have to implement them
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (void)adWhirlWillPresentFullScreenModal {
|
|
||||||
//It's recommended to invoke whatever you're using as a "Pause Menu" so your
|
|
||||||
//game won't keep running while the user is "playing" with the Ad (for example, iAds)
|
|
||||||
[self pauseGame];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidDismissFullScreenModal {
|
|
||||||
//Once the user closes the Ad he'll want to return to the game and continue where
|
|
||||||
//he left it
|
|
||||||
[self resumeGame];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)adWhirlApplicationKey {
|
|
||||||
if ((UI_USER_INTERFACE_IDIOM()) == UIUserInterfaceIdiomPad)
|
|
||||||
return _MY_AD_WHIRL_APPLICATION_KEY_IPAD;
|
|
||||||
|
|
||||||
return _MY_AD_WHIRL_APPLICATION_KEY_IPHONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)viewControllerForPresentingModalView {
|
- (UIViewController *)viewControllerForPresentingModalView {
|
||||||
//Remember that UIViewController we created in the Game.h file? AdMob will use it.
|
//Remember that UIViewController we created in the Game.h file? AdMob will use it.
|
||||||
//If you want to use "return self;" instead, AdMob will cancel the Ad requests.
|
//If you want to use "return self;" instead, AdMob will cancel the Ad requests.
|
||||||
@@ -666,101 +635,5 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView {
|
|
||||||
[UIView beginAnimations:@"AdWhirlDelegate.adWhirlDidReceiveAd:"
|
|
||||||
context:nil];
|
|
||||||
BOOL isLandscape = UIDeviceOrientationIsLandscape( [UIDevice currentDevice].orientation);
|
|
||||||
[UIView setAnimationDuration:0.7];
|
|
||||||
|
|
||||||
CGSize adSize = [adWhirlView actualAdSize];
|
|
||||||
CGRect newFrame = [adWhirlView frame];
|
|
||||||
CGSize screenSize = [self.window bounds].size;
|
|
||||||
|
|
||||||
newFrame.size = adSize;
|
|
||||||
// ads are 320 x 50
|
|
||||||
newFrame.origin.x = ( (isLandscape ? screenSize.height : screenSize.width) - adSize.width)/ 2;
|
|
||||||
newFrame.origin.y = ( (isLandscape ? screenSize.width : screenSize.height) - 50);
|
|
||||||
|
|
||||||
[adWhirlView setFrame: newFrame];
|
|
||||||
|
|
||||||
[UIView commitAnimations];
|
|
||||||
}
|
|
||||||
|
|
||||||
-(void)adWhirlDidFailToReceiveAd:(AdWhirlView *)adWhirlView usingBackup:(BOOL)yesOrNo {
|
|
||||||
//The code to show my own Ad banner again
|
|
||||||
NSLog(@"failed to get an Ad");
|
|
||||||
}
|
|
||||||
|
|
||||||
-(void) removeAds {
|
|
||||||
//There's something weird about AdWhirl because setting the adView delegate
|
|
||||||
//to "nil" doesn't stops the Ad requests and also it doesn't remove the adView
|
|
||||||
//from superView; do the following to remove AdWhirl from your scene.
|
|
||||||
//
|
|
||||||
//If adView exists, remove everything
|
|
||||||
if (adView) {
|
|
||||||
//Remove adView from superView
|
|
||||||
[adView removeFromSuperview];
|
|
||||||
//Replace adView's view with "nil"
|
|
||||||
[adView replaceBannerViewWith:nil];
|
|
||||||
//Tell AdWhirl to stop requesting Ads
|
|
||||||
[adView ignoreNewAdRequests];
|
|
||||||
//Set adView delegate to "nil"
|
|
||||||
[adView setDelegate:nil];
|
|
||||||
//Release adView
|
|
||||||
[adView release];
|
|
||||||
//set adView to "nil"
|
|
||||||
adView = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-(void) displayAds
|
|
||||||
{
|
|
||||||
BOOL isLandscape = UIDeviceOrientationIsLandscape( [UIDevice currentDevice].orientation);
|
|
||||||
|
|
||||||
//Assign the AdWhirl Delegate to our adView
|
|
||||||
if ( adView != nil )
|
|
||||||
[self removeAds];
|
|
||||||
|
|
||||||
//Let's allocate the viewController (it's the same RootViewController as declared
|
|
||||||
//in our AppDelegate; will be used for the Ads)
|
|
||||||
viewController = [(wagicAppDelegate *)[[UIApplication sharedApplication] delegate] glViewController];
|
|
||||||
|
|
||||||
self.adView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
|
|
||||||
//Set auto-resizing mask
|
|
||||||
self.adView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
|
|
||||||
//This isn't really needed but also it makes no harm. It just retrieves the configuration
|
|
||||||
//from adwhirl.com so it knows what Ad networks to use
|
|
||||||
[adView updateAdWhirlConfig];
|
|
||||||
//Get the actual size for the requested Ad
|
|
||||||
CGSize adSize = [adView actualAdSize];
|
|
||||||
//
|
|
||||||
//Set the position; remember that we are using 4 values (in this order): X, Y, Width, Height
|
|
||||||
//You can comment this line if your game is in portrait mode and you want your Ad on the top
|
|
||||||
//if you want the Ad in other position (portrait or landscape), use the following code,
|
|
||||||
//for this example, the Ad will be positioned in the bottom+center of the screen
|
|
||||||
//(in landscape mode):
|
|
||||||
//Same explanation as the one in the method "adjustAdSize" for the Ad's width
|
|
||||||
int screenWidth = [viewController.parentViewController.view bounds].size.width;
|
|
||||||
float yOffset = [viewController.parentViewController.view bounds].size.height - adSize.height;
|
|
||||||
if ( isLandscape )
|
|
||||||
{
|
|
||||||
screenWidth = [viewController.parentViewController.view bounds].size.height;
|
|
||||||
yOffset = screenWidth - adSize.height;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.adView.frame = CGRectMake((screenWidth - adSize.width) / 2, yOffset, adSize.width, adSize.height);
|
|
||||||
|
|
||||||
//Trying to keep everything inside the Ad bounds
|
|
||||||
self.adView.clipsToBounds = YES;
|
|
||||||
//Adding the adView (used for our Ads) to our viewController
|
|
||||||
[viewController.view addSubview:adView];
|
|
||||||
//Bring our view to front
|
|
||||||
[viewController.view bringSubviewToFront:adView];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
@interface EAGLViewController : UIViewController<UITextFieldDelegate> {
|
@interface EAGLViewController : UIViewController<UITextFieldDelegate> {
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,13 @@
|
|||||||
[inputField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
|
[inputField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
|
||||||
[inputField setAutocorrectionType:UITextAutocorrectionTypeNo];
|
[inputField setAutocorrectionType:UITextAutocorrectionTypeNo];
|
||||||
[inputField setKeyboardType: UIKeyboardTypeNamePhonePad];
|
[inputField setKeyboardType: UIKeyboardTypeNamePhonePad];
|
||||||
|
|
||||||
CGRect frame = [[UIScreen mainScreen] applicationFrame];
|
CGRect frame = [[UIScreen mainScreen] applicationFrame];
|
||||||
eaglView = [[EAGLView alloc] initWithFrame:frame];
|
eaglView = [[EAGLView alloc] initWithFrame:frame];
|
||||||
|
|
||||||
[self setView: eaglView];
|
[self setView: eaglView];
|
||||||
[self.view addSubview: inputField];
|
[self.view addSubview: inputField];
|
||||||
|
|
||||||
[inputField release];
|
[inputField release];
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
@@ -103,6 +106,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - device orientation handlers
|
#pragma mark - device orientation handlers
|
||||||
|
- (NSUInteger)supportedInterfaceOrientations
|
||||||
|
{
|
||||||
|
//I want to support portrait in ABCView at iPhone only.
|
||||||
|
//and support all orientation in other views and iPad.
|
||||||
|
|
||||||
|
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
|
||||||
|
{
|
||||||
|
return UIInterfaceOrientationMaskLandscape;
|
||||||
|
}
|
||||||
|
|
||||||
|
//support all
|
||||||
|
return UIInterfaceOrientationMaskAll;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-(BOOL)shouldAutorotate {
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||||
// Overriden to allow any orientation.
|
// Overriden to allow any orientation.
|
||||||
@@ -115,7 +137,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||||
[[eaglView adView] rotateToOrientation: toInterfaceOrientation];
|
// [[eaglView adView] rotateToOrientation: toInterfaceOrientation];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,6 @@ bool checkFramebufferStatus();
|
|||||||
|
|
||||||
- (void)render
|
- (void)render
|
||||||
{
|
{
|
||||||
// NSLog(@"Renderer - render");
|
|
||||||
|
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
uint dt;
|
uint dt;
|
||||||
|
|
||||||
@@ -58,8 +56,19 @@ bool checkFramebufferStatus();
|
|||||||
// This application only creates a single default framebuffer which is already bound at this point.
|
// This application only creates a single default framebuffer which is already bound at this point.
|
||||||
// This call is redundant, but needed if dealing with multiple framebuffers.
|
// This call is redundant, but needed if dealing with multiple framebuffers.
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer);
|
glBindFramebuffer(GL_FRAMEBUFFER, defaultFramebuffer);
|
||||||
|
GLfloat currentRatio = (GLfloat) backingWidth / (GLfloat) backingHeight;
|
||||||
|
|
||||||
if ((GLfloat)backingWidth / (GLfloat)backingHeight < ACTUAL_RATIO)
|
// for retina devices. because of the 568 px, the ratio between height-width skews the
|
||||||
|
// frame a bit
|
||||||
|
|
||||||
|
if ( backingHeight == 568 || backingWidth == 568) {
|
||||||
|
viewPort.left = 0;
|
||||||
|
viewPort.top = -((backingWidth/ACTUAL_RATIO)-backingHeight)/2 + 22; // account for status bar
|
||||||
|
viewPort.right = backingWidth;
|
||||||
|
viewPort.bottom = -((backingWidth/ACTUAL_RATIO)-backingHeight)/2 + backingWidth / ACTUAL_RATIO - 22;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (currentRatio < ACTUAL_RATIO)
|
||||||
{
|
{
|
||||||
viewPort.left = 0;
|
viewPort.left = 0;
|
||||||
viewPort.top = -((backingWidth/ACTUAL_RATIO)-backingHeight)/2;
|
viewPort.top = -((backingWidth/ACTUAL_RATIO)-backingHeight)/2;
|
||||||
@@ -131,7 +140,7 @@ bool checkFramebufferStatus();
|
|||||||
glEnable (GL_BLEND);
|
glEnable (GL_BLEND);
|
||||||
|
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
// glEnable(GL_SCISSOR_TEST); // Enable Clipping
|
// glEnable(GL_SCISSOR_TEST); // Enable Clipping
|
||||||
|
|
||||||
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background (yes that's the way fuckers)
|
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background (yes that's the way fuckers)
|
||||||
glClearDepthf(1.0f); // Depth Buffer Setup
|
glClearDepthf(1.0f); // Depth Buffer Setup
|
||||||
|
|||||||
@@ -262,7 +262,7 @@
|
|||||||
glViewController = [[EAGLViewController alloc] init];
|
glViewController = [[EAGLViewController alloc] init];
|
||||||
|
|
||||||
[[[self.window subviews] lastObject] removeFromSuperview];
|
[[[self.window subviews] lastObject] removeFromSuperview];
|
||||||
[self.window addSubview:self.glViewController.view];
|
[self.window setRootViewController: glViewController];
|
||||||
|
|
||||||
NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];
|
NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];
|
||||||
[dnc removeObserver: self name: @"intializeGame" object: nil];
|
[dnc removeObserver: self name: @"intializeGame" object: nil];
|
||||||
@@ -337,7 +337,7 @@
|
|||||||
|
|
||||||
- (void)applicationWillTerminate:(UIApplication *)application
|
- (void)applicationWillTerminate:(UIApplication *)application
|
||||||
{
|
{
|
||||||
[self.glViewController.view destroyGame];
|
[self.glViewController.view destroyGame];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initializeKeyboard: (id) initialState
|
- (void)initializeKeyboard: (id) initialState
|
||||||
@@ -355,21 +355,8 @@
|
|||||||
|
|
||||||
- (void)handleWEngineCommand:(NSString *) command withParameter: (NSString *) parameter
|
- (void)handleWEngineCommand:(NSString *) command withParameter: (NSString *) parameter
|
||||||
{
|
{
|
||||||
BOOL isDevicePhone = (UI_USER_INTERFACE_IDIOM()) == UIUserInterfaceIdiomPhone;
|
|
||||||
|
|
||||||
if ([command isEqualToString: @"entergamestate:menu"] )
|
if ([command isEqualToString: @"displayKeyboard"])
|
||||||
[glViewController.eaglView displayAds];
|
|
||||||
|
|
||||||
else if ([command isEqualToString: @"enterduelphase:end"] && isDevicePhone)
|
|
||||||
[glViewController.eaglView displayAds];
|
|
||||||
|
|
||||||
else if ([command isEqualToString: @"leaveduelphase:end"] ||
|
|
||||||
[command isEqualToString: @"leavegamestate:menu"])
|
|
||||||
{
|
|
||||||
if (isDevicePhone)
|
|
||||||
[glViewController.eaglView removeAds];
|
|
||||||
}
|
|
||||||
else if ([command isEqualToString: @"displayKeyboard"])
|
|
||||||
{
|
{
|
||||||
[self initializeKeyboard: parameter];
|
[self initializeKeyboard: parameter];
|
||||||
}
|
}
|
||||||
@@ -379,6 +366,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- (void) rotateBackgroundImage:(UIInterfaceOrientation)fromInterfaceOrientation toInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
|
- (void) rotateBackgroundImage:(UIInterfaceOrientation)fromInterfaceOrientation toInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
|
||||||
{
|
{
|
||||||
bool isPhone = (UI_USER_INTERFACE_IDIOM()) == UIUserInterfaceIdiomPhone;
|
bool isPhone = (UI_USER_INTERFACE_IDIOM()) == UIUserInterfaceIdiomPhone;
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
You can put ad network libraries in this directory. The sample .xcodeproj references to files here.
|
|
||||||
DO NOT PUSH ANY AD NETWORK LIBRARIES TO GOOGLE CODE.
|
|
||||||
@@ -1,344 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlDelegateProtocol.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <CoreLocation/CoreLocation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@class AdWhirlView;
|
|
||||||
|
|
||||||
@protocol AdWhirlDelegate<NSObject>
|
|
||||||
|
|
||||||
@required
|
|
||||||
|
|
||||||
- (NSString *)adWhirlApplicationKey;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The view controller with which the ad network will display a modal view
|
|
||||||
* (web view, canvas), such as when the user clicks on the ad. You must
|
|
||||||
* supply a view controller. You should return the root view controller
|
|
||||||
* of your application, such as the root UINavigationController, or
|
|
||||||
* any controllers that are pushed/added directly to the root view controller.
|
|
||||||
* For example, if your app delegate has a pointer to the root view controller:
|
|
||||||
*
|
|
||||||
* return [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] rootViewController]
|
|
||||||
*
|
|
||||||
* will suffice.
|
|
||||||
*/
|
|
||||||
- (UIViewController *)viewControllerForPresentingModalView;
|
|
||||||
|
|
||||||
@optional
|
|
||||||
|
|
||||||
#pragma mark server endpoints
|
|
||||||
/**
|
|
||||||
* If you are running your own AdWhirl server instance, make sure you
|
|
||||||
* implement the following to return the URL that points to the endpoints
|
|
||||||
* on your server.
|
|
||||||
*/
|
|
||||||
- (NSURL *)adWhirlConfigURL;
|
|
||||||
- (NSURL *)adWhirlImpMetricURL;
|
|
||||||
- (NSURL *)adWhirlClickMetricURL;
|
|
||||||
- (NSURL *)adWhirlCustomAdURL;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark notifications
|
|
||||||
/**
|
|
||||||
* You can listen to callbacks from AdWhirl via these methods. When AdWhirl is
|
|
||||||
* notified that an ad request is fulfilled, it will notify you immediately.
|
|
||||||
* Thus, when notified that an ad request succeeded, you can choose to add the
|
|
||||||
* AdWhirlView object as a subview to your view. This view contains the ad.
|
|
||||||
* When you are notified that an ad request failed, you are also informed if the
|
|
||||||
* AdWhirlView is fetching a backup ad. The backup fetching order is specified
|
|
||||||
* by you in adwhirl.com or your own server instance. When all backup sources
|
|
||||||
* are attempted and the last ad request still fails, the usingBackup parameter
|
|
||||||
* will be set to NO. You can use this notification to try again and perhaps
|
|
||||||
* request another AdWhirlView via [AdWhirlView requestAdWhirlViewWithDelegate:]
|
|
||||||
*/
|
|
||||||
- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView;
|
|
||||||
- (void)adWhirlDidFailToReceiveAd:(AdWhirlView *)adWhirlView usingBackup:(BOOL)yesOrNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* You can get notified when the transition animation to a new ad is completed
|
|
||||||
* so you can make necessary adjustments to the size of the adWhirlView and
|
|
||||||
* surrounding views after the animation.
|
|
||||||
*/
|
|
||||||
- (void)adWhirlDidAnimateToNewAdIn:(AdWhirlView *)adWhirlView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function is your integration point for Generic Notifications. You can
|
|
||||||
* control when this notification occurs via the developers member section. You
|
|
||||||
* can allocate a percentage of your ad requests to initiate this callback. When
|
|
||||||
* you receive this notification, you can execute any code block that you own.
|
|
||||||
* For example, you can replace the ad in AdWhirlView after getting this callback
|
|
||||||
* by calling replaceBannerViewWith: . Note that the ad refresh cycle is still
|
|
||||||
* alive, so your view could be replaced by other ads when it's time for an
|
|
||||||
* ad refresh.
|
|
||||||
*/
|
|
||||||
- (void)adWhirlReceivedRequestForDeveloperToFufill:(AdWhirlView *)adWhirlView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In the event that ads are OFF, you can listen to this callback method to
|
|
||||||
* determine that ads have been turned off.
|
|
||||||
*/
|
|
||||||
- (void)adWhirlReceivedNotificationAdsAreOff:(AdWhirlView *)adWhirlView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* These notifications will let you know when a user is being shown a full screen
|
|
||||||
* webview canvas with an ad because they tapped on an ad. You should listen to
|
|
||||||
* these notifications to determine when to pause/resume your game--if you're
|
|
||||||
* building a game app.
|
|
||||||
*/
|
|
||||||
- (void)adWhirlWillPresentFullScreenModal;
|
|
||||||
- (void)adWhirlDidDismissFullScreenModal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An ad request is a two step process: first the SDK must go to the AdWhirl
|
|
||||||
* server to retrieve configuration information. Then, based on the configuration
|
|
||||||
* information, it chooses an ad network and fetch an ad. The following call
|
|
||||||
* is for users to get notified when the first step is complete. The
|
|
||||||
* adWhirlView passed could be null if you had called the AdWhirlView class
|
|
||||||
* method +startPreFetchingConfigurationDataWithDelegate .
|
|
||||||
*/
|
|
||||||
- (void)adWhirlDidReceiveConfig:(AdWhirlView *)adWhirlView;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark behavior configurations
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Request test ads for APIs that supports it. Make sure you turn it to OFF
|
|
||||||
* or remove the function before you submit your app to the app store.
|
|
||||||
*/
|
|
||||||
- (BOOL)adWhirlTestMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the device's current orientation for ad networks that relys on
|
|
||||||
* it. If you don't implement this function, [UIDevice currentDevice].orientation
|
|
||||||
* is used to get the current orientation.
|
|
||||||
*/
|
|
||||||
- (UIDeviceOrientation)adWhirlCurrentOrientation;
|
|
||||||
|
|
||||||
#pragma mark appearance configurations
|
|
||||||
- (UIColor *)adWhirlAdBackgroundColor;
|
|
||||||
- (UIColor *)adWhirlTextColor;
|
|
||||||
- (UIColor *)adWhirlSecondaryTextColor;
|
|
||||||
- (UIColor *)backgroundColor DEPRECATED_ATTRIBUTE; // use the one with adWhirl prefix
|
|
||||||
- (UIColor *)textColor DEPRECATED_ATTRIBUTE; // use the one with adWhirl prefix
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark hard-coded application keys
|
|
||||||
- (NSString *)admobPublisherID; // your Publisher ID from Admob.
|
|
||||||
- (NSDictionary *)quattroWirelessDictionary; // key-value pairs for the keys "publisherID" and "siteID" provided by Quattro Wireless. Set NSString values for these two keys.
|
|
||||||
- (NSString *)pinchApplicationKey; // your Application Code from Pinch Media.
|
|
||||||
- (NSDictionary *)videoEggConfigDictionary; // key-value pairs for the keys "publisher" and "area" information from Video Egg. Set NSString values for these two keys.
|
|
||||||
- (NSString *)millennialMediaApIDString; // your ApID string from Millennial Media.
|
|
||||||
- (NSString *)MdotMApplicationKey; // your Application Code from MdotM
|
|
||||||
- (NSString *)googleAdSenseClientID; // your publisher ID from Google AdSense
|
|
||||||
- (NSString *)zestADZClientID; // your clientID from ZestADZ
|
|
||||||
- (NSString *)brightRollAppId; // your BrightRoll App ID
|
|
||||||
- (NSString *)inMobiAppID; // your inMobi app ID
|
|
||||||
- (NSString *)oneRiotAppID;
|
|
||||||
- (NSDictionary *) nexageDictionary; // your nexage dcn and position
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark demographic information optional delegate methods
|
|
||||||
- (CLLocation *)locationInfo; // user's current location
|
|
||||||
- (NSString *)postalCode; // user's postal code, e.g. "94401"
|
|
||||||
- (NSString *)areaCode; // user's area code, e.g. "415"
|
|
||||||
- (NSDate *)dateOfBirth; // user's date of birth
|
|
||||||
- (NSString *)gender; // user's gender (e.g. @"m" or @"f")
|
|
||||||
- (NSString *)keywords; // keywords the user has provided or that are contextually relevant, e.g. @"twitter client iPhone"
|
|
||||||
- (NSString *)searchString; // a search string the user has provided, e.g. @"Jasmine Tea House San Francisco"
|
|
||||||
- (NSUInteger)incomeLevel; // return actual annual income
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark QuattroWireless-specific optional delegate methods
|
|
||||||
/**
|
|
||||||
* Return the ad type desired for Quattro
|
|
||||||
* QWAdTypeBanner = 0,
|
|
||||||
* QWAdTypeText=2,
|
|
||||||
*/
|
|
||||||
- (NSUInteger)quattroWirelessAdType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a value for the education level if you have access to this info. This
|
|
||||||
* information will be relayed to Quattro Wireless if provided.
|
|
||||||
* QWEducationNoCollege = 0
|
|
||||||
* QWEducationCollegeGraduate = 1
|
|
||||||
* QWEducationGraduateSchool = 2
|
|
||||||
* QWEducationUnknown = 3
|
|
||||||
*/
|
|
||||||
- (NSUInteger)quattroWirelessEducationLevel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a value for the ethnicity if you have access to this info. This
|
|
||||||
* information will be relayed to Quattro Wireless if provided.
|
|
||||||
* QWEthnicGroupAfrican_American = 0
|
|
||||||
* QWEthnicGroupAsian = 1
|
|
||||||
* QWEthnicGroupHispanic = 2
|
|
||||||
* QWEthnicGroupWhite = 3
|
|
||||||
* QWEthnicGroupOther = 4
|
|
||||||
*/
|
|
||||||
- (NSUInteger)quattroWirelessEthnicity;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark MillennialMedia-specific optional delegate methods
|
|
||||||
/**
|
|
||||||
* Return the ad type desired for Millennial Media, depending on your ad position
|
|
||||||
* MMBannerAdTop = 1,
|
|
||||||
* MMBannerAdBottom = 2,
|
|
||||||
*/
|
|
||||||
- (NSUInteger)millennialMediaAdType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a value for the education level if you have access to this info. This
|
|
||||||
* information will be relayed to Millennial Media if provided
|
|
||||||
* MMEducationUnknown = 0,
|
|
||||||
* MMEducationHishSchool = 1,
|
|
||||||
* MMEducationSomeCollege = 2,
|
|
||||||
* MMEducationInCollege = 3,
|
|
||||||
* MMEducationBachelorsDegree = 4,
|
|
||||||
* MMEducationMastersDegree = 5,
|
|
||||||
* MMEducationPhD = 6
|
|
||||||
*/
|
|
||||||
- (NSUInteger)millennialMediaEducationLevel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a value for ethnicity if you have access to this info. This
|
|
||||||
* information will be relayed to Millennial Media if provided.
|
|
||||||
* MMEthnicityUnknown = 0,
|
|
||||||
* MMEthnicityAfricanAmerican = 1,
|
|
||||||
* MMEthnicityAsian = 2,
|
|
||||||
* MMEthnicityCaucasian = 3,
|
|
||||||
* MMEthnicityHispanic = 4,
|
|
||||||
* MMEthnicityNativeAmerican = 5,
|
|
||||||
* MMEthnicityMixed = 6
|
|
||||||
*/
|
|
||||||
- (NSUInteger)millennialMediaEthnicity;
|
|
||||||
|
|
||||||
- (NSUInteger)millennialMediaAge DEPRECATED_ATTRIBUTE; // use dateOfBirth
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark Jumptap-specific optional delegate methods
|
|
||||||
/**
|
|
||||||
* optional site and spot id as provided by Jumptap.
|
|
||||||
*/
|
|
||||||
- (NSString *)jumptapSiteId;
|
|
||||||
- (NSString *)jumptapSpotId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Find a list of valid categories at https://support.jumptap.com/index.php/Valid_Categories
|
|
||||||
*/
|
|
||||||
- (NSString *)jumptapCategory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether adult content is allowed.
|
|
||||||
* AdultContentAllowed = 0,
|
|
||||||
* AdultContentNotAllowed = 1,
|
|
||||||
* AdultContentOnly = 2
|
|
||||||
*/
|
|
||||||
- (NSUInteger)jumptapAdultContent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The transition to use when moving from, say, a banner to full-screen.
|
|
||||||
* TransitionHorizontalSlide = 0,
|
|
||||||
* TransitionVerticalSlide = 1,
|
|
||||||
* TransitionCurl = 2,
|
|
||||||
* TransitionFlip = 3
|
|
||||||
*/
|
|
||||||
- (NSUInteger)jumptapTransitionType;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark Google AdSense-specific delegate methods
|
|
||||||
/**
|
|
||||||
These are *REQUIRED* for googleAdSense. If you don't implement these methods,
|
|
||||||
your app will crash as the AdSense adapter looks for these methods.
|
|
||||||
*/
|
|
||||||
- (NSString *)googleAdSenseCompanyName;
|
|
||||||
- (NSString *)googleAdSenseAppName;
|
|
||||||
- (NSString *)googleAdSenseApplicationAppleID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
The following are optional and correspond to the optional kGADAdSense* ad attributes.
|
|
||||||
For documentation, see GADAdSenseParameters.h .
|
|
||||||
*/
|
|
||||||
- (NSString *)googleAdSenseKeywords;
|
|
||||||
- (NSURL *)googleAdSenseAppWebContentURL;
|
|
||||||
- (NSArray *)googleAdSenseChannelIDs;
|
|
||||||
- (NSString *)googleAdSenseAdType;
|
|
||||||
- (NSString *)googleAdSenseHostID;
|
|
||||||
//- (UIColor *)googleAdSenseAdBackgroundColor; // implement adWhirlAdBackgroundColor or set in server
|
|
||||||
- (UIColor *)googleAdSenseAdTopBackgroundColor;
|
|
||||||
- (UIColor *)googleAdSenseAdBorderColor;
|
|
||||||
- (UIColor *)googleAdSenseAdLinkColor;
|
|
||||||
//- (UIColor *)googleAdSenseAdTextColor; // implement adWhirlTextColor or set in server
|
|
||||||
- (UIColor *)googleAdSenseAdURLColor;
|
|
||||||
- (UIColor *)googleAdSenseAlternateAdColor;
|
|
||||||
- (NSURL *)googleAdSenseAlternateAdURL;
|
|
||||||
- (NSNumber *)googleAdSenseAllowAdsafeMedium;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark InMobi-specific optional delegate methods
|
|
||||||
/**
|
|
||||||
* Education level for InMobi
|
|
||||||
* Edu_None = 0
|
|
||||||
* Edu_HighSchool = 1
|
|
||||||
* Edu_SomeCollege = 2
|
|
||||||
* Edu_InCollege = 3
|
|
||||||
* Edu_BachelorsDegree = 4
|
|
||||||
* Edu_MastersDegree = 5
|
|
||||||
* Edu_DoctoralDegree = 6
|
|
||||||
* Edu_Other = 7
|
|
||||||
*/
|
|
||||||
- (NSUInteger)inMobiEducation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Eth_None = 0,
|
|
||||||
Eth_Mixed = 1,
|
|
||||||
Eth_Asian = 2,
|
|
||||||
Eth_Black = 3,
|
|
||||||
Eth_Hispanic = 4,
|
|
||||||
Eth_NativeAmerican = 5,
|
|
||||||
Eth_White = 6,
|
|
||||||
Eth_Other = 7
|
|
||||||
*/
|
|
||||||
- (NSUInteger)inMobiEthnicity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* See inMobi's documentation for valid values
|
|
||||||
*/
|
|
||||||
- (NSString *)inMobiInterests;
|
|
||||||
|
|
||||||
- (NSString *)iAdAdvertisingSection;
|
|
||||||
|
|
||||||
- (NSDictionary *)inMobiParamsDictionary;
|
|
||||||
|
|
||||||
#pragma mark OneRiot-specific optional delegate methods
|
|
||||||
|
|
||||||
/** Returns an array of NSStrings containing all optional context parameters
|
|
||||||
*/
|
|
||||||
- (NSArray *)oneRiotContextParameters;
|
|
||||||
|
|
||||||
#pragma mark Nexage-specific optional delegate methods
|
|
||||||
-(NSString *)nexageCity;
|
|
||||||
-(NSString *)nexageDesignatedMarketArea;
|
|
||||||
-(NSString *)nexageCountry;
|
|
||||||
-(NSString *)nexageEthnicity;
|
|
||||||
-(NSString *)nexageMaritalStatus;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlView.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
#import "AWNetworkReachabilityWrapper.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
|
|
||||||
#define kAdWhirlAppVer 310
|
|
||||||
|
|
||||||
#define kAdWhirlViewWidth 320
|
|
||||||
#define kAdWhirlViewHeight 50
|
|
||||||
#define kAdWhirlViewDefaultSize \
|
|
||||||
(CGSizeMake(kAdWhirlViewWidth, kAdWhirlViewHeight))
|
|
||||||
#define kAdWhirlViewDefaultFrame \
|
|
||||||
(CGRectMake(0,0,kAdWhirlViewWidth, kAdWhirlViewHeight))
|
|
||||||
|
|
||||||
#define kAdWhirlDefaultConfigURL @"http://mob.adwhirl.com/getInfo.php"
|
|
||||||
#define kAdWhirlDefaultImpMetricURL @"http://met.adwhirl.com/exmet.php"
|
|
||||||
#define kAdWhirlDefaultClickMetricURL @"http://met.adwhirl.com/exclick.php"
|
|
||||||
#define kAdWhirlDefaultCustomAdURL @"http://mob.adwhirl.com/custom.php"
|
|
||||||
#define kAWMinimumTimeBetweenFreshAdRequests 4.9f
|
|
||||||
#define kAdWhirlAdRequestTimeout 10
|
|
||||||
|
|
||||||
|
|
||||||
@class AdWhirlAdNetworkConfig;
|
|
||||||
@class AdWhirlAdNetworkAdapter;
|
|
||||||
@class AdWhirlConfigStore;
|
|
||||||
@class AWNetworkReachabilityWrapper;
|
|
||||||
|
|
||||||
|
|
||||||
@interface AdWhirlView : UIView <AdWhirlConfigDelegate,
|
|
||||||
AWNetworkReachabilityDelegate> {
|
|
||||||
id<AdWhirlDelegate> delegate;
|
|
||||||
AdWhirlConfig *config;
|
|
||||||
|
|
||||||
NSMutableArray *prioritizedAdNetCfgs;
|
|
||||||
double totalPercent;
|
|
||||||
|
|
||||||
BOOL ignoreAutoRefreshTimer;
|
|
||||||
BOOL ignoreNewAdRequests;
|
|
||||||
BOOL appInactive;
|
|
||||||
BOOL showingModalView;
|
|
||||||
|
|
||||||
BOOL requesting;
|
|
||||||
AdWhirlAdNetworkAdapter *currAdapter;
|
|
||||||
AdWhirlAdNetworkAdapter *lastAdapter;
|
|
||||||
NSDate *lastRequestTime;
|
|
||||||
NSMutableDictionary *pendingAdapters;
|
|
||||||
|
|
||||||
NSTimer *refreshTimer;
|
|
||||||
|
|
||||||
// remember which adapter we last sent click stats for so we don't send twice
|
|
||||||
id lastNotifyAdapter;
|
|
||||||
|
|
||||||
NSError *lastError;
|
|
||||||
|
|
||||||
AdWhirlConfigStore *configStore;
|
|
||||||
|
|
||||||
AWNetworkReachabilityWrapper *rollOverReachability;
|
|
||||||
|
|
||||||
NSUInteger configFetchAttempts;
|
|
||||||
|
|
||||||
NSArray *testDarts;
|
|
||||||
NSUInteger testDartIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to get a view object that you can add to your own view. You
|
|
||||||
* must also provide a delegate. The delegate provides AdWhirl's application
|
|
||||||
* key and can listen for important messages. You can configure the view's
|
|
||||||
* settings and specific ad network information on AdWhirl.com or your own
|
|
||||||
* AdWhirl server instance.
|
|
||||||
*/
|
|
||||||
+ (AdWhirlView *)requestAdWhirlViewWithDelegate:(id<AdWhirlDelegate>)delegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Starts pre-fetching ad network configurations from an AdWhirl server. If the
|
|
||||||
* configuration has been fetched when you are ready to request an ad, you save
|
|
||||||
* a round-trip to the network and hence your ad may show up faster. You
|
|
||||||
* typically call this in the applicationDidFinishLaunching: method of your
|
|
||||||
* app delegate. The request is non-blocking. You only need to call this
|
|
||||||
* at most once per run of your application. Subsequent calls to this function
|
|
||||||
* will be ignored.
|
|
||||||
*/
|
|
||||||
+ (void)startPreFetchingConfigurationDataWithDelegate:(id<AdWhirlDelegate>)d;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to request a new configuration from the AdWhirl servers.
|
|
||||||
* This can be useful to support iOS 4.0 backgrounding.
|
|
||||||
*/
|
|
||||||
+ (void)updateAdWhirlConfigWithDelegate:(id<AdWhirlDelegate>)delegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to request a new configuration from the AdWhirl servers.
|
|
||||||
*/
|
|
||||||
- (void)updateAdWhirlConfig;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to get another ad to display. You can also specify under
|
|
||||||
* "app settings" on adwhirl.com to automatically get new ads periodically.
|
|
||||||
*/
|
|
||||||
- (void)requestFreshAd;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method if you prefer a rollover instead of a getNextAd call. This
|
|
||||||
* is offered primarily for developers who want to use generic notifications and
|
|
||||||
* then execute a rollover when an ad network fails to serve an ad.
|
|
||||||
*/
|
|
||||||
- (void)rollOver;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The delegate is informed asynchronously whether an ad succeeds or fails to
|
|
||||||
* load. If you prefer to poll for this information, you can do so using this
|
|
||||||
* method.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
- (BOOL)adExists;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Different ad networks may return different ad sizes. You may adjust the size
|
|
||||||
* of the AdWhirlView and your UI to avoid unsightly borders or chopping off
|
|
||||||
* pixels from ads. Call this method when you receive the adWhirlDidReceiveAd
|
|
||||||
* delegate method to get the size of the underlying ad network ad.
|
|
||||||
*/
|
|
||||||
- (CGSize)actualAdSize;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Some ad networks may offer different banner sizes for different orientations.
|
|
||||||
* Call this function when the orientation of your UI changes so the underlying
|
|
||||||
* ad may handle the orientation change properly. You may also want to
|
|
||||||
* call the actualAdSize method right after calling this to get the size of
|
|
||||||
* the ad after the orientation change.
|
|
||||||
*/
|
|
||||||
- (void)rotateToOrientation:(UIInterfaceOrientation)orientation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to get the name of the most recent ad network that an ad
|
|
||||||
* request was made to.
|
|
||||||
*/
|
|
||||||
- (NSString *)mostRecentNetworkName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to ignore the automatic refresh timer.
|
|
||||||
*
|
|
||||||
* Note that the refresh timer is NOT invalidated when you call
|
|
||||||
* ignoreAutoRefreshTimer.
|
|
||||||
* This will simply ignore the refresh events that are called by the automatic
|
|
||||||
* refresh timer (if the refresh timer is enabled via adwhirl.com). So, for
|
|
||||||
* example, let's say you have a refresh cycle of 60 seconds. If you call
|
|
||||||
* ignoreAutoRefreshTimer at 30 seconds, and call resumeRefreshTimer at 90 sec,
|
|
||||||
* then the first refresh event is ignored, but the second refresh event at 120
|
|
||||||
* sec will run.
|
|
||||||
*/
|
|
||||||
- (void)ignoreAutoRefreshTimer;
|
|
||||||
- (void)doNotIgnoreAutoRefreshTimer;
|
|
||||||
- (BOOL)isIgnoringAutoRefreshTimer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this method to ignore automatic refreshes AND manual refreshes entirely.
|
|
||||||
*
|
|
||||||
* This is provided for developers who asked to disable refreshing entirely,
|
|
||||||
* whether automatic or manual.
|
|
||||||
* If you call ignoreNewAdRequests, the AdWhirl will:
|
|
||||||
* 1) Ignore any Automatic refresh events (via the refresh timer) AND
|
|
||||||
* 2) Ignore any manual refresh calls (via requestFreshAd and rollOver)
|
|
||||||
*/
|
|
||||||
- (void)ignoreNewAdRequests;
|
|
||||||
- (void)doNotIgnoreNewAdRequests;
|
|
||||||
- (BOOL)isIgnoringNewAdRequests;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Call this to replace the content of this AdWhirlView with the view.
|
|
||||||
*/
|
|
||||||
- (void)replaceBannerViewWith:(UIView*)bannerView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* You can set the delegate to nil or another object.
|
|
||||||
* Make sure you set the delegate to nil when you release an AdWhirlView
|
|
||||||
* instance to avoid the AdWhirlView from calling to a non-existent delegate.
|
|
||||||
* If you set the delegate to another object, note that if the new delegate
|
|
||||||
* returns a different value for adWhirlApplicationKey, it will not overwrite
|
|
||||||
* the application key provided by the delegate you supplied for
|
|
||||||
* +requestAdWhirlViewWithDelegate .
|
|
||||||
*/
|
|
||||||
@property (nonatomic, assign) IBOutlet id<AdWhirlDelegate> delegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use this to retrieve more information after your delegate received a
|
|
||||||
* adWhirlDidFailToReceiveAd message.
|
|
||||||
*/
|
|
||||||
@property (nonatomic, readonly) NSError *lastError;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark For ad network adapters use only
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by Adapters when there's a new ad view.
|
|
||||||
*/
|
|
||||||
- (void)adapter:(AdWhirlAdNetworkAdapter *)adapter
|
|
||||||
didReceiveAdView:(UIView *)view;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by Adapters when ad view failed.
|
|
||||||
*/
|
|
||||||
- (void)adapter:(AdWhirlAdNetworkAdapter *)adapter didFailAd:(NSError *)error;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called by Adapters when the ad request is finished, but the ad view is
|
|
||||||
* furnished elsewhere. e.g. Generic Notification
|
|
||||||
*/
|
|
||||||
- (void)adapterDidFinishAdRequest:(AdWhirlAdNetworkAdapter *)adapter;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkAdapter.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AdWhirlAdNetworkTypeAdMob = 1,
|
|
||||||
AdWhirlAdNetworkTypeJumpTap = 2,
|
|
||||||
AdWhirlAdNetworkTypeVideoEgg = 3,
|
|
||||||
AdWhirlAdNetworkTypeMedialets = 4,
|
|
||||||
AdWhirlAdNetworkTypeLiveRail = 5,
|
|
||||||
AdWhirlAdNetworkTypeMillennial = 6,
|
|
||||||
AdWhirlAdNetworkTypeGreyStripe = 7,
|
|
||||||
AdWhirlAdNetworkTypeQuattro = 8,
|
|
||||||
AdWhirlAdNetworkTypeCustom = 9,
|
|
||||||
AdWhirlAdNetworkTypeAdWhirl10 = 10,
|
|
||||||
AdWhirlAdNetworkTypeMobClix = 11,
|
|
||||||
AdWhirlAdNetworkTypeMdotM = 12,
|
|
||||||
AdWhirlAdNetworkTypeAdWhirl13 = 13,
|
|
||||||
AdWhirlAdNetworkTypeGoogleAdSense = 14,
|
|
||||||
AdWhirlAdNetworkTypeGoogleDoubleClick = 15,
|
|
||||||
AdWhirlAdNetworkTypeGeneric = 16,
|
|
||||||
AdWhirlAdNetworkTypeEvent = 17,
|
|
||||||
AdWhirlAdNetworkTypeInMobi = 18,
|
|
||||||
AdWhirlAdNetworkTypeIAd = 19,
|
|
||||||
AdWhirlAdNetworkTypeZestADZ = 20,
|
|
||||||
AdWhirlAdNetworkTypeBrightRoll = 21,
|
|
||||||
AdWhirlAdNetworkTypeTapAd = 22,
|
|
||||||
AdWhirlAdNetworkTypeOneRiot = 23,
|
|
||||||
AdWhirlAdNetworkTypeNexage = 24
|
|
||||||
} AdWhirlAdNetworkType;
|
|
||||||
|
|
||||||
@class AdWhirlView;
|
|
||||||
@class AdWhirlConfig;
|
|
||||||
@class AdWhirlAdNetworkConfig;
|
|
||||||
|
|
||||||
@interface AdWhirlAdNetworkAdapter : NSObject {
|
|
||||||
id<AdWhirlDelegate> adWhirlDelegate;
|
|
||||||
AdWhirlView *adWhirlView;
|
|
||||||
AdWhirlConfig *adWhirlConfig;
|
|
||||||
AdWhirlAdNetworkConfig *networkConfig;
|
|
||||||
UIView *adNetworkView;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses must implement +networkType to return an AdWhirlAdNetworkType enum.
|
|
||||||
*/
|
|
||||||
//+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses must add itself to the AdWhirlAdNetworkRegistry. One way
|
|
||||||
* to do so is to implement the +load function and register there.
|
|
||||||
*/
|
|
||||||
//+ (void)load;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default initializer. Subclasses do not need to override this method unless
|
|
||||||
* they need to perform additional initialization. In which case, this
|
|
||||||
* method must be called via the super keyword.
|
|
||||||
*/
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ask the adapter to get an ad. This must be implemented by subclasses.
|
|
||||||
*/
|
|
||||||
- (void)getAd;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When called, the adapter must remove itself as a delegate or notification
|
|
||||||
* observer from the underlying ad network SDK. Subclasses must implement this
|
|
||||||
* method, even if the underlying SDK doesn't have a way of removing delegate
|
|
||||||
* (in which case, you should contact the ad network). Note that this method
|
|
||||||
* will be called in dealloc at AdWhirlAdNetworkAdapter, before adNetworkView
|
|
||||||
* is released. Care must be taken if you also keep a reference of your ad view
|
|
||||||
* in a separate instance variable, as you may have released that variable
|
|
||||||
* before this gets called in AdWhirlAdNetworkAdapter's dealloc. Use
|
|
||||||
* adNetworkView, defined in this class, instead of your own instance variable.
|
|
||||||
* This function should also be idempotent, i.e. get called multiple times and
|
|
||||||
* not crash.
|
|
||||||
*/
|
|
||||||
- (void)stopBeingDelegate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses return YES to ask AdWhirlView to send metric requests to the
|
|
||||||
* AdWhirl server for ad impressions. Default is YES.
|
|
||||||
*/
|
|
||||||
- (BOOL)shouldSendExMetric;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tell the adapter that the interface orientation changed or is about to change
|
|
||||||
*/
|
|
||||||
- (void)rotateToOrientation:(UIInterfaceOrientation)orientation;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Some ad transition types may cause issues with particular ad networks. The
|
|
||||||
* adapter should know whether the given animation type is OK. Defaults to
|
|
||||||
* YES.
|
|
||||||
*/
|
|
||||||
- (BOOL)isBannerAnimationOK:(AWBannerAnimationType)animType;
|
|
||||||
|
|
||||||
@property (nonatomic,assign) id<AdWhirlDelegate> adWhirlDelegate;
|
|
||||||
@property (nonatomic,assign) AdWhirlView *adWhirlView;
|
|
||||||
@property (nonatomic,retain) AdWhirlConfig *adWhirlConfig;
|
|
||||||
@property (nonatomic,retain) AdWhirlAdNetworkConfig *networkConfig;
|
|
||||||
@property (nonatomic,retain) UIView *adNetworkView;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
AdWhirlAdapterBrightRoll.h
|
|
||||||
|
|
||||||
Copyright 2010 BrightRoll, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "BRBannerAd.h"
|
|
||||||
#import "BRBannerAdDelegate.h"
|
|
||||||
#import "BRFullScreenAd.h"
|
|
||||||
#import "BRFullScreenAdDelegate.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterBrightRoll : AdWhirlAdNetworkAdapter <BRBannerAdDelegate, BRFullScreenAdDelegate>
|
|
||||||
{
|
|
||||||
BRBannerAd *brBannerAd;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic, retain) BRBannerAd *brBannerAd;
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
- (void)brBannerAdFetched:(BRBannerAd *)brBannerAd;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterBrightRoll.m
|
|
||||||
|
|
||||||
Copyright 2009 BrightRoll, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterBrightRoll.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterBrightRoll
|
|
||||||
|
|
||||||
@synthesize brBannerAd;
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType
|
|
||||||
{
|
|
||||||
return AdWhirlAdNetworkTypeBrightRoll;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load
|
|
||||||
{
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopObserving
|
|
||||||
{
|
|
||||||
[[NSNotificationCenter defaultCenter]
|
|
||||||
removeObserver:self
|
|
||||||
name:@"AdWhirlViewWillAnimateToNewAd"
|
|
||||||
object:self.adWhirlView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate
|
|
||||||
{
|
|
||||||
[self stopObserving];
|
|
||||||
self.brBannerAd.delegate = nil;
|
|
||||||
self.brBannerAd = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd
|
|
||||||
{
|
|
||||||
self.brBannerAd = [BRBannerAd fetchWithDelegate:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark BRBannerAdDelegate required methods
|
|
||||||
|
|
||||||
- (NSString *)brBannerAdAppId:(BRBannerAd *)theBrBannerAd
|
|
||||||
{
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(brightRollAppId)])
|
|
||||||
{
|
|
||||||
return [adWhirlDelegate brightRollAppId];
|
|
||||||
}
|
|
||||||
return networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)brBannerAdFetched:(BRBannerAd *)theBrBannerAd
|
|
||||||
{
|
|
||||||
[[NSNotificationCenter defaultCenter]
|
|
||||||
addObserver:self
|
|
||||||
selector:@selector(adWhirlWillAnimateToNewAdIn:)
|
|
||||||
name:@"AdWhirlViewWillAnimateToNewAd"
|
|
||||||
object:self.adWhirlView];
|
|
||||||
|
|
||||||
brBannerAd.fullScreenAd.delegate = self;
|
|
||||||
self.adNetworkView = brBannerAd.view;
|
|
||||||
[self.adWhirlView adapter:self didReceiveAdView:brBannerAd.view];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)brBannerAdFetchFailed:(BRBannerAd *)bannerAd
|
|
||||||
{
|
|
||||||
[adWhirlView
|
|
||||||
adapter:self
|
|
||||||
didFailAd:[NSError
|
|
||||||
errorWithDomain:@"com.brightroll.BrightRoll_iPhone_SDK"
|
|
||||||
code:404
|
|
||||||
userInfo:[NSDictionary dictionary]]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)brBannerAdWillShowFullScreenAd:(BRBannerAd *)bannerAd
|
|
||||||
{
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark AdWhirlView notification methods
|
|
||||||
|
|
||||||
- (void)adWhirlWillAnimateToNewAdIn:(NSNotification *)notification
|
|
||||||
{
|
|
||||||
if ([self.adWhirlView performSelector:@selector(currAdapter)] == self)
|
|
||||||
{
|
|
||||||
[self stopObserving];
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
[brBannerAd.fullScreenAd show];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark BRFullScreenAdDelegate required methods
|
|
||||||
|
|
||||||
- (UIViewController *)brFullScreenAdControllerParent
|
|
||||||
{
|
|
||||||
return [self.adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)brFullScreenAdDismissed:(BRFullScreenAd *)brFullScreenAd
|
|
||||||
{
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)brightRollAppId
|
|
||||||
{
|
|
||||||
NSString *appId = [self.networkConfig.credentials objectForKey:@"pubid"];
|
|
||||||
|
|
||||||
if (!appId)
|
|
||||||
{
|
|
||||||
appId = [self.adWhirlDelegate brightRollAppId];
|
|
||||||
}
|
|
||||||
|
|
||||||
return appId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGoogleAdMobAds.h
|
|
||||||
Copyright 2011 Google, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "GADBannerViewDelegate.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterGoogleAdMobAds : AdWhirlAdNetworkAdapter
|
|
||||||
<GADBannerViewDelegate> {
|
|
||||||
}
|
|
||||||
|
|
||||||
- (SEL)delegatePublisherIdSelector;
|
|
||||||
- (NSString *)hexStringFromUIColor:(UIColor *)color;
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
- (NSString *)publisherId;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,199 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGoogleAdMobAds.m
|
|
||||||
Copyright 2011 Google, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterGoogleAdMobAds.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "GADBannerView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterGoogleAdMobAds
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeAdMob;
|
|
||||||
}
|
|
||||||
|
|
||||||
// converts UIColor to hex string, ignoring alpha.
|
|
||||||
- (NSString *)hexStringFromUIColor:(UIColor *)color {
|
|
||||||
CGColorSpaceModel colorSpaceModel =
|
|
||||||
CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor));
|
|
||||||
if (colorSpaceModel == kCGColorSpaceModelRGB
|
|
||||||
|| colorSpaceModel == kCGColorSpaceModelMonochrome) {
|
|
||||||
const CGFloat *colors = CGColorGetComponents(color.CGColor);
|
|
||||||
CGFloat red = 0.0, green = 0.0, blue = 0.0;
|
|
||||||
if (colorSpaceModel == kCGColorSpaceModelRGB) {
|
|
||||||
red = colors[0];
|
|
||||||
green = colors[1];
|
|
||||||
blue = colors[2];
|
|
||||||
// we ignore alpha here.
|
|
||||||
} else if (colorSpaceModel == kCGColorSpaceModelMonochrome) {
|
|
||||||
red = green = blue = colors[0];
|
|
||||||
}
|
|
||||||
return [NSString stringWithFormat:@"%02X%02X%02X",
|
|
||||||
(int)(red * 255), (int)(green * 255), (int)(blue * 255)];
|
|
||||||
}
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSObject *)delegateValueForSelector:(SEL)selector {
|
|
||||||
return ([adWhirlDelegate respondsToSelector:selector]) ?
|
|
||||||
[adWhirlDelegate performSelector:selector] : nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
GADRequest *request = [GADRequest request];
|
|
||||||
NSObject *value;
|
|
||||||
|
|
||||||
NSMutableDictionary *additional = [NSMutableDictionary dictionary];
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)]
|
|
||||||
&& [adWhirlDelegate adWhirlTestMode]) {
|
|
||||||
[additional setObject:@"on" forKey:@"adtest"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((value = [self delegateValueForSelector:
|
|
||||||
@selector(adWhirlAdBackgroundColor)])) {
|
|
||||||
[additional setObject:[self hexStringFromUIColor:(UIColor *)value]
|
|
||||||
forKey:@"color_bg"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((value = [self delegateValueForSelector:
|
|
||||||
@selector(adWhirlAdBackgroundColor)])) {
|
|
||||||
[additional setObject:[self hexStringFromUIColor:(UIColor *)value]
|
|
||||||
forKey:@"color_text"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// deliberately don't allow other color specifications.
|
|
||||||
|
|
||||||
if ([additional count] > 0) {
|
|
||||||
request.additionalParameters = additional;
|
|
||||||
}
|
|
||||||
|
|
||||||
CLLocation *location =
|
|
||||||
(CLLocation *)[self delegateValueForSelector:@selector(locationInfo)];
|
|
||||||
|
|
||||||
if ((adWhirlConfig.locationOn) && (location)) {
|
|
||||||
[request setLocationWithLatitude:location.coordinate.latitude
|
|
||||||
longitude:location.coordinate.longitude
|
|
||||||
accuracy:location.horizontalAccuracy];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *string =
|
|
||||||
(NSString *)[self delegateValueForSelector:@selector(gender)];
|
|
||||||
|
|
||||||
if ([string isEqualToString:@"m"]) {
|
|
||||||
request.gender = kGADGenderMale;
|
|
||||||
} else if ([string isEqualToString:@"f"]) {
|
|
||||||
request.gender = kGADGenderFemale;
|
|
||||||
} else {
|
|
||||||
request.gender = kGADGenderUnknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((value = [self delegateValueForSelector:@selector(dateOfBirth)])) {
|
|
||||||
request.birthday = (NSDate *)value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((value = [self delegateValueForSelector:@selector(keywords)])) {
|
|
||||||
NSArray *keywordArray =
|
|
||||||
[(NSString *)value componentsSeparatedByString:@" "];
|
|
||||||
request.keywords = [NSMutableArray arrayWithArray:keywordArray];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the frame for this view to match the bounds of the parent adWhirlView.
|
|
||||||
GADBannerView *view =
|
|
||||||
[[GADBannerView alloc] initWithFrame:adWhirlView.bounds];
|
|
||||||
|
|
||||||
view.adUnitID = [self publisherId];
|
|
||||||
view.delegate = self;
|
|
||||||
view.rootViewController =
|
|
||||||
[adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
|
|
||||||
self.adNetworkView = [view autorelease];
|
|
||||||
|
|
||||||
[view loadRequest:request];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
if (self.adNetworkView != nil
|
|
||||||
&& [self.adNetworkView respondsToSelector:@selector(setDelegate:)]) {
|
|
||||||
[self.adNetworkView performSelector:@selector(setDelegate:)
|
|
||||||
withObject:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark Ad Request Lifecycle Notifications
|
|
||||||
|
|
||||||
// Sent when an ad request loaded an ad. This is a good opportunity to add
|
|
||||||
// this view to the hierarchy if it has not yet been added.
|
|
||||||
- (void)adViewDidReceiveAd:(GADBannerView *)adView {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adView];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sent when an ad request failed. Normally this is because no network
|
|
||||||
// connection was available or no ads were available (i.e. no fill).
|
|
||||||
- (void)adView:(GADBannerView *)adView
|
|
||||||
didFailToReceiveAdWithError:(GADRequestError *)error {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark Click-Time Lifecycle Notifications
|
|
||||||
|
|
||||||
// Sent just before presenting the user a full screen view, such as a browser,
|
|
||||||
// in response to clicking on an ad. Use this opportunity to stop animations,
|
|
||||||
// time sensitive interactions, etc.
|
|
||||||
//
|
|
||||||
// Normally the user looks at the ad, dismisses it, and control returns to your
|
|
||||||
// application by calling adViewDidDismissScreen:. However if the user hits
|
|
||||||
// the Home button or clicks on an App Store link your application will end.
|
|
||||||
// On iOS 4.0+ the next method called will be applicationWillResignActive: of
|
|
||||||
// your UIViewController (UIApplicationWillResignActiveNotification).
|
|
||||||
// Immediately after that adViewWillLeaveApplication: is called.
|
|
||||||
- (void)adViewWillPresentScreen:(GADBannerView *)adView {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sent just after dismissing a full screen view. Use this opportunity to
|
|
||||||
// restart anything you may have stopped as part of adViewWillPresentScreen:.
|
|
||||||
- (void)adViewDidDismissScreen:(GADBannerView *)adView {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark parameter gathering methods
|
|
||||||
|
|
||||||
- (SEL)delegatePublisherIdSelector {
|
|
||||||
return @selector(admobPublisherID);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)publisherId {
|
|
||||||
SEL delegateSelector = [self delegatePublisherIdSelector];
|
|
||||||
|
|
||||||
if ((delegateSelector) &&
|
|
||||||
([adWhirlDelegate respondsToSelector:delegateSelector])) {
|
|
||||||
return [adWhirlDelegate performSelector:delegateSelector];
|
|
||||||
}
|
|
||||||
|
|
||||||
return networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGoogleAdSense.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "GADAdViewController.h"
|
|
||||||
#import "GADAdSenseParameters.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterGoogleAdSense : AdWhirlAdNetworkAdapter <GADAdViewControllerDelegate> {
|
|
||||||
GADAdViewController *adViewController;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (retain) GADAdViewController *adViewController;
|
|
||||||
|
|
||||||
+ (NSInteger)networkType;
|
|
||||||
|
|
||||||
- (NSString *)publisherId;
|
|
||||||
- (NSString *)companyName;
|
|
||||||
- (NSString *)appName;
|
|
||||||
- (NSString *)applicationAppleID;
|
|
||||||
- (NSNumber *)testMode;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,189 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGoogleAdSense.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdapterGoogleAdSense.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
static NSDictionary *GASParamNameToSel;
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterGoogleAdSense
|
|
||||||
|
|
||||||
@synthesize adViewController;
|
|
||||||
|
|
||||||
+ (NSInteger)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeGoogleAdSense;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
GASParamNameToSel = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
@"googleAdSenseKeywords", kGADAdSenseKeywords,
|
|
||||||
@"googleAdSenseAppWebContentURL", kGADAdSenseAppWebContentURL,
|
|
||||||
@"googleAdSenseChannelIDs", kGADAdSenseChannelIDs,
|
|
||||||
@"googleAdSenseAdType", kGADAdSenseAdType,
|
|
||||||
@"googleAdSenseHostID", kGADAdSenseHostID,
|
|
||||||
@"adWhirlAdBackgroundColor", kGADAdSenseAdBackgroundColor,
|
|
||||||
@"googleAdSenseAdTopBackgroundColor", kGADAdSenseAdTopBackgroundColor,
|
|
||||||
@"googleAdSenseAdBorderColor", kGADAdSenseAdBorderColor,
|
|
||||||
@"googleAdSenseAdLinkColor", kGADAdSenseAdLinkColor,
|
|
||||||
@"adWhirlTextColor", kGADAdSenseAdTextColor,
|
|
||||||
@"googleAdSenseAdURLColor", kGADAdSenseAdURLColor,
|
|
||||||
@"googleAdSenseAlternateAdColor", kGADAdSenseAlternateAdColor,
|
|
||||||
@"googleAdSenseAlternateAdURL", kGADAdSenseAlternateAdURL,
|
|
||||||
@"googleAdSenseAllowAdsafeMedium", kGADAdSenseAllowAdsafeMedium,
|
|
||||||
nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf {
|
|
||||||
self = [super initWithAdWhirlDelegate:delegate
|
|
||||||
view:view
|
|
||||||
config:config
|
|
||||||
networkConfig:netConf];
|
|
||||||
if (self != nil) {
|
|
||||||
// Check that the required methods are implemented.
|
|
||||||
if (![delegate respondsToSelector:@selector(googleAdSenseCompanyName)]) {
|
|
||||||
[NSException raise:NSInvalidArgumentException format:
|
|
||||||
@"You must implement googleAdSenseCompanyName in your AdwhirlDelegate in order to use Google AdSense"];
|
|
||||||
}
|
|
||||||
if (![delegate respondsToSelector:@selector(googleAdSenseAppName)]) {
|
|
||||||
[NSException raise:NSInvalidArgumentException format:
|
|
||||||
@"You must implement googleAdSenseAppName in your AdwhirlDelegate in order to use Google AdSense"];
|
|
||||||
}
|
|
||||||
if (![delegate respondsToSelector:@selector(googleAdSenseApplicationAppleID)]) {
|
|
||||||
[NSException raise:NSInvalidArgumentException format:
|
|
||||||
@"You must implement googleAdSenseApplicationAppleID in your AdwhirlDelegate in order to use Google AdSense"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
adViewController = [[GADAdViewController alloc] initWithDelegate:self];
|
|
||||||
|
|
||||||
NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
[self publisherId], kGADAdSenseClientID,
|
|
||||||
[self companyName], kGADAdSenseCompanyName,
|
|
||||||
[self appName], kGADAdSenseAppName,
|
|
||||||
[self applicationAppleID], kGADAdSenseApplicationAppleID,
|
|
||||||
[self testMode], kGADAdSenseIsTestAdRequest,
|
|
||||||
nil];
|
|
||||||
|
|
||||||
// optional params
|
|
||||||
for (NSString *paramName in GASParamNameToSel) {
|
|
||||||
SEL sel = NSSelectorFromString((NSString *)[GASParamNameToSel objectForKey:paramName]);
|
|
||||||
if ([adWhirlDelegate respondsToSelector:sel]) {
|
|
||||||
NSObject *val = [adWhirlDelegate performSelector:sel];
|
|
||||||
if (val != nil) {
|
|
||||||
[attributes setObject:val forKey:paramName];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AWLogDebug(@"Google AdSense attributes: %@", attributes);
|
|
||||||
// load the ad
|
|
||||||
adViewController.adSize = kGADAdSize320x50;
|
|
||||||
[adViewController loadGoogleAd:attributes];
|
|
||||||
adViewController.view.frame = kAdWhirlViewDefaultFrame;
|
|
||||||
self.adNetworkView = adViewController.view;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
if (adViewController != nil) {
|
|
||||||
adViewController.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
// need to call here cos adViewController will be nil when super dealloc runs
|
|
||||||
[self stopBeingDelegate];
|
|
||||||
[adViewController release], adViewController = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark parameter gathering methods
|
|
||||||
|
|
||||||
- (NSString *)publisherId {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(googleAdSenseClientID)]) {
|
|
||||||
return [adWhirlDelegate googleAdSenseClientID];
|
|
||||||
}
|
|
||||||
|
|
||||||
return networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)companyName {
|
|
||||||
return [adWhirlDelegate googleAdSenseCompanyName];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)appName {
|
|
||||||
return [adWhirlDelegate googleAdSenseAppName];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)applicationAppleID {
|
|
||||||
return [adWhirlDelegate googleAdSenseApplicationAppleID];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSNumber *)testMode {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)]
|
|
||||||
&& [adWhirlDelegate adWhirlTestMode]) {
|
|
||||||
return [NSNumber numberWithInt:1];
|
|
||||||
}
|
|
||||||
return [NSNumber numberWithInt:0];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark GADAdViewControllerDelegate required methods
|
|
||||||
|
|
||||||
- (UIViewController *)viewControllerForModalPresentation:(GADAdViewController *)adController {
|
|
||||||
return [adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark GADAdViewControllerDelegate notification methods
|
|
||||||
|
|
||||||
- (void)loadSucceeded:(GADAdViewController *)adController withResults:(NSDictionary *)results {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:[adController view]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)loadFailed:(GADAdViewController *)adController withError:(NSError *) error {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (GADAdClickAction)adControllerActionModelForAdClick:(GADAdViewController *)adController {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
return GAD_ACTION_DISPLAY_INTERNAL_WEBSITE_VIEW; // full screen web view
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adControllerDidCloseWebsiteView:(GADAdViewController *)adController {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adControllerDidExpandAd:(GADAdViewController *)controller {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adControllerDidCollapseAd:(GADAdViewController *)controller {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGreystripe.m
|
|
||||||
|
|
||||||
Copyright 2010 Greystripe, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "GreystripeDelegate.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Banner slot name used to identify the banner ad slot within the Greystripe
|
|
||||||
* SDK.
|
|
||||||
*/
|
|
||||||
extern NSString * const kGSBannerSlotName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Full-screen slot name used to identify the full-screen ad slot within the
|
|
||||||
* Greystripe SDK. Use this slot name to display full-screen ads as follows:
|
|
||||||
*
|
|
||||||
* [GSAdEngine displayFullScreenAdForSlotNamed:kGSFullScreenSlotName];
|
|
||||||
*
|
|
||||||
* If you need to check whether an ad is available for this slot, simply use:
|
|
||||||
*
|
|
||||||
* [GSAdEngine isAdReadyForSlotNamed:kGSFullScreenSlotName];
|
|
||||||
*/
|
|
||||||
extern NSString * const kGSFullScreenSlotName;
|
|
||||||
|
|
||||||
@class GSAdView;
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterGreystripe : AdWhirlAdNetworkAdapter <GreystripeDelegate> {
|
|
||||||
UIView *innerContainer;
|
|
||||||
UIView *outerContainer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGreystripe.m
|
|
||||||
|
|
||||||
Copyright 2010 Greystripe, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterGreystripe.h"
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "GSAdView.h"
|
|
||||||
#import "GSAdEngine.h"
|
|
||||||
|
|
||||||
// constants
|
|
||||||
NSString * const kGSBannerSlotName = @"gsBanner";
|
|
||||||
NSString * const kGSFullScreenSlotName = @"gsFullScreen";
|
|
||||||
|
|
||||||
// static globals
|
|
||||||
static BOOL g_didStartUpGreystripe;
|
|
||||||
static NSTimeInterval g_lastAdReadyTime;
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterGreystripe ()
|
|
||||||
- (void)bannerAdReady;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterGreystripe
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeGreyStripe;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize the Greystripe adapter. The GSAdEngine will be started up the
|
|
||||||
* first time this method is called, using the ID provided by the AdWhirl
|
|
||||||
* server. Two slots will be registered with the GSAdEngine: one banner and one
|
|
||||||
* full-screen. See the note in AdWhirlAdapterGreystripe.h on how to make use
|
|
||||||
* of the full-screen slot.
|
|
||||||
*/
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf {
|
|
||||||
if(self = [super initWithAdWhirlDelegate:delegate view:view config:config networkConfig:netConf]) {
|
|
||||||
if(!g_didStartUpGreystripe) {
|
|
||||||
@try {
|
|
||||||
GSAdSlotDescription * bannerSlot = [GSAdSlotDescription descriptionWithSize:kGSAdSizeBanner name:kGSBannerSlotName];
|
|
||||||
GSAdSlotDescription * fullScreenSlot = [GSAdSlotDescription descriptionWithSize:kGSAdSizeIPhoneFullScreen name:kGSFullScreenSlotName];
|
|
||||||
[GSAdEngine startupWithAppID:netConf.pubId adSlotDescriptions:[NSArray arrayWithObjects:bannerSlot,fullScreenSlot, nil]];
|
|
||||||
g_didStartUpGreystripe = YES;
|
|
||||||
}
|
|
||||||
@catch (NSException *e) {
|
|
||||||
// This exception is thrown when Greystripe is initialized twice. We
|
|
||||||
// ignore it because if the host app is using Greystripe directly for
|
|
||||||
// full-screen ads, it may have already initialized Greystripe before
|
|
||||||
// AdWhirl tried to do the same.
|
|
||||||
if([e.name isEqualToString:NSInternalInconsistencyException]){
|
|
||||||
g_didStartUpGreystripe = YES;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
@throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetch a banner ad from Greystripe. This method only fetches banners as all
|
|
||||||
* full-screen ad fetching is performed implicitly by the GSAdEngine.
|
|
||||||
*/
|
|
||||||
- (void)getAd {
|
|
||||||
GSAdView *gsAdView = [GSAdView adViewForSlotNamed:kGSBannerSlotName delegate:self];
|
|
||||||
|
|
||||||
// Use default frame, slightly bigger, to be the parent view of gsAdView, so
|
|
||||||
// when the GSAdView finds its containing view it stops at the inner Container
|
|
||||||
// and will set the alpha of innerContainer, not the AdWhirlView
|
|
||||||
innerContainer = [[UIView alloc] initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
innerContainer.backgroundColor = [UIColor clearColor];
|
|
||||||
[innerContainer addSubview:gsAdView];
|
|
||||||
|
|
||||||
// Set the outer container to be the size of the gsAdView so there are no unsightly
|
|
||||||
// borders around the ad
|
|
||||||
outerContainer = [[UIView alloc] initWithFrame:gsAdView.frame];
|
|
||||||
outerContainer.backgroundColor = [UIColor clearColor];
|
|
||||||
[outerContainer addSubview:innerContainer];
|
|
||||||
self.adNetworkView = outerContainer;
|
|
||||||
|
|
||||||
NSTimeInterval now = [[NSDate date] timeIntervalSince1970];
|
|
||||||
NSTimeInterval delta = now - g_lastAdReadyTime;
|
|
||||||
if(delta > kGSMinimumRefreshInterval) {
|
|
||||||
// For the initial ad display we will get an ad ready notification
|
|
||||||
// automatically because the ad is automatically rendered
|
|
||||||
// regardless of its refresh interval (0 here). For all other
|
|
||||||
// displays we must force it.
|
|
||||||
if(g_lastAdReadyTime > 0) {
|
|
||||||
if([GSAdEngine isNextAdDownloadedForSlotNamed:kGSBannerSlotName]) {
|
|
||||||
[gsAdView refresh];
|
|
||||||
[self bannerAdReady];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogDebug(@"Failing Greystripe banner ad request because the next "\
|
|
||||||
"banner ad has not yet been downloaded.");
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogDebug(@"Failing Greystripe ad request because Greystripe's "
|
|
||||||
"minimum refresh interval of %f has not elapsed since the "\
|
|
||||||
"previous banner display.", kGSMinimumRefreshInterval);
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Stop being the delegate for banner ads. In order to change the delegate for
|
|
||||||
* full-screen Greystripe ads, see GSAdEngine's
|
|
||||||
* setFullScreenDelegate:forSlotNamed: method.
|
|
||||||
*/
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
[GSAdView adViewForSlotNamed:kGSBannerSlotName delegate:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[innerContainer release];
|
|
||||||
[outerContainer release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark GreystripeDelegate notification methods
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Delegate notification received when Greystripe has a banner ad ready.
|
|
||||||
*/
|
|
||||||
- (void)greystripeAdReadyForSlotNamed:(NSString *)a_name {
|
|
||||||
if ([a_name isEqualToString:kGSBannerSlotName] && g_lastAdReadyTime == 0) {
|
|
||||||
// Only forward on this notification for the initial notification as
|
|
||||||
// all other notifications will be sent explicitly after checking
|
|
||||||
// ad readiness (see getAd).
|
|
||||||
[self bannerAdReady];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)greystripeFullScreenDisplayWillOpen {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)greystripeFullScreenDisplayWillClose {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark Internal methods
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Notify the host app that Greystripe has received an ad. This only applies
|
|
||||||
* banner ads that the Greystripe SDK has fetched, as readiness of full-screen
|
|
||||||
* ads can be always be checked directly via
|
|
||||||
* [GSAdEngine isAdReadyForSlotNamed:kGSFullScreenSlotName].
|
|
||||||
*/
|
|
||||||
- (void)bannerAdReady {
|
|
||||||
AWLogDebug(@"Greystripe received banner ad.");
|
|
||||||
g_lastAdReadyTime = [[NSDate date] timeIntervalSince1970];
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:self.adNetworkView];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterIAd.h
|
|
||||||
|
|
||||||
Copyright 2010 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import <iAd/ADBannerView.h>
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterIAd : AdWhirlAdNetworkAdapter <ADBannerViewDelegate> {
|
|
||||||
NSString *kADBannerContentSizeIdentifierPortrait;
|
|
||||||
NSString *kADBannerContentSizeIdentifierLandscape;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterIAd.m
|
|
||||||
|
|
||||||
Copyright 2010 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterIAd.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterIAd
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeIAd;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
if(NSClassFromString(@"ADBannerView") != nil) {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
ADBannerView *iAdView = [[ADBannerView alloc] initWithFrame:CGRectZero];
|
|
||||||
kADBannerContentSizeIdentifierPortrait =
|
|
||||||
&ADBannerContentSizeIdentifierPortrait != nil ?
|
|
||||||
ADBannerContentSizeIdentifierPortrait :
|
|
||||||
ADBannerContentSizeIdentifier320x50;
|
|
||||||
kADBannerContentSizeIdentifierLandscape =
|
|
||||||
&ADBannerContentSizeIdentifierLandscape != nil ?
|
|
||||||
ADBannerContentSizeIdentifierLandscape :
|
|
||||||
ADBannerContentSizeIdentifier480x32;
|
|
||||||
iAdView.requiredContentSizeIdentifiers = [NSSet setWithObjects:
|
|
||||||
kADBannerContentSizeIdentifierPortrait,
|
|
||||||
kADBannerContentSizeIdentifierLandscape,
|
|
||||||
nil];
|
|
||||||
UIDeviceOrientation orientation;
|
|
||||||
if ([self.adWhirlDelegate respondsToSelector:@selector(adWhirlCurrentOrientation)]) {
|
|
||||||
orientation = [self.adWhirlDelegate adWhirlCurrentOrientation];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
orientation = [UIDevice currentDevice].orientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (UIDeviceOrientationIsLandscape(orientation)) {
|
|
||||||
iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierLandscape;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierPortrait;
|
|
||||||
}
|
|
||||||
[iAdView setDelegate:self];
|
|
||||||
|
|
||||||
self.adNetworkView = iAdView;
|
|
||||||
[iAdView release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
ADBannerView *iAdView = (ADBannerView *)self.adNetworkView;
|
|
||||||
if (iAdView != nil) {
|
|
||||||
iAdView.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)rotateToOrientation:(UIInterfaceOrientation)orientation {
|
|
||||||
ADBannerView *iAdView = (ADBannerView *)self.adNetworkView;
|
|
||||||
if (iAdView == nil) return;
|
|
||||||
if (UIInterfaceOrientationIsLandscape(orientation)) {
|
|
||||||
iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierLandscape;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierPortrait;
|
|
||||||
}
|
|
||||||
// ADBanner positions itself in the center of the super view, which we do not
|
|
||||||
// want, since we rely on publishers to resize the container view.
|
|
||||||
// position back to 0,0
|
|
||||||
CGRect newFrame = iAdView.frame;
|
|
||||||
newFrame.origin.x = newFrame.origin.y = 0;
|
|
||||||
iAdView.frame = newFrame;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)isBannerAnimationOK:(AWBannerAnimationType)animType {
|
|
||||||
if (animType == AWBannerAnimationTypeFadeIn) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark IAdDelegate methods
|
|
||||||
|
|
||||||
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
|
|
||||||
// ADBanner positions itself in the center of the super view, which we do not
|
|
||||||
// want, since we rely on publishers to resize the container view.
|
|
||||||
// position back to 0,0
|
|
||||||
CGRect newFrame = banner.frame;
|
|
||||||
newFrame.origin.x = newFrame.origin.y = 0;
|
|
||||||
banner.frame = newFrame;
|
|
||||||
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:banner];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterInMobi.h
|
|
||||||
|
|
||||||
Copyright 2010 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "IMAdDelegate.h"
|
|
||||||
#import "IMAdRequest.h"
|
|
||||||
|
|
||||||
@class InMobiAdView;
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterInMobi : AdWhirlAdNetworkAdapter <IMAdDelegate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
- (NSString *)siteId;
|
|
||||||
- (UIViewController *)rootViewControllerForAd;
|
|
||||||
- (BOOL)testMode;
|
|
||||||
- (Gender)gender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterInMobi.m
|
|
||||||
|
|
||||||
Copyright 2010 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterInMobi.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "IMAdView.h"
|
|
||||||
#import "IMAdRequest.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterInMobi
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeInMobi;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
IMAdView *inMobiView = [[IMAdView alloc]
|
|
||||||
initWithFrame:kAdWhirlViewDefaultFrame
|
|
||||||
imAppId:[self siteId]
|
|
||||||
imAdUnit:IM_UNIT_320x50
|
|
||||||
rootViewController:[self rootViewControllerForAd]];
|
|
||||||
[inMobiView autorelease];
|
|
||||||
inMobiView.refreshInterval = REFRESH_INTERVAL_OFF;
|
|
||||||
inMobiView.delegate = self;
|
|
||||||
self.adNetworkView = inMobiView;
|
|
||||||
|
|
||||||
IMAdRequest *request = [IMAdRequest request];
|
|
||||||
|
|
||||||
if ([self testMode]) {
|
|
||||||
request.testMode = true;
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(postalCode)]) {
|
|
||||||
request.postalCode = [adWhirlDelegate postalCode];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(areaCode)]) {
|
|
||||||
request.areaCode = [adWhirlDelegate areaCode];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]) {
|
|
||||||
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
|
|
||||||
[formatter setDateFormat:@"dd-MM-yyyy"];
|
|
||||||
request.dateOfBirth = [formatter
|
|
||||||
stringFromDate:[adWhirlDelegate dateOfBirth]];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(gender)]) {
|
|
||||||
if ([adWhirlDelegate gender] == @"m") {
|
|
||||||
request.gender = G_M;
|
|
||||||
} else if ([adWhirlDelegate gender] == @"f") {
|
|
||||||
request.gender = G_F;
|
|
||||||
} else {
|
|
||||||
request.gender = G_None;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(keywords)]) {
|
|
||||||
request.keywords = [adWhirlDelegate keywords];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(searchString)]) {
|
|
||||||
request.searchString = [adWhirlDelegate searchString];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(incomeLevel)]) {
|
|
||||||
request.income = [adWhirlDelegate incomeLevel];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(inMobiEducation)]) {
|
|
||||||
request.education = [adWhirlDelegate inMobiEducation];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(inMobiEthnicity)]) {
|
|
||||||
request.ethnicity = [adWhirlDelegate inMobiEthnicity];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]) {
|
|
||||||
request.age = [self helperCalculateAge];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(inMobiInterests)]) {
|
|
||||||
request.interests = [adWhirlDelegate inMobiInterests];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(inMobiParamsDictionary)]) {
|
|
||||||
request.paramsDictionary = [adWhirlDelegate inMobiParamsDictionary];
|
|
||||||
}
|
|
||||||
if (!adWhirlConfig.locationOn) {
|
|
||||||
request.isLocationEnquiryAllowed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
[inMobiView loadIMAdRequest:request];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
InMobiAdView *inMobiView = (InMobiAdView *)self.adNetworkView;
|
|
||||||
if (inMobiView != nil) {
|
|
||||||
[inMobiView setDelegate:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark IMAdView helper methods
|
|
||||||
|
|
||||||
- (NSString *)siteId {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(inMobiAppId)]) {
|
|
||||||
return [adWhirlDelegate inMobiAppID];
|
|
||||||
}
|
|
||||||
return networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)rootViewControllerForAd {
|
|
||||||
return [adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)testMode {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)])
|
|
||||||
return [adWhirlDelegate adWhirlTestMode];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (Gender)gender {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(gender)]) {
|
|
||||||
NSString *genderStr = [adWhirlDelegate gender];
|
|
||||||
if ([genderStr isEqualToString:@"f"]) {
|
|
||||||
return G_F;
|
|
||||||
} else if ([genderStr isEqualToString:@"m"]) {
|
|
||||||
return G_M;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return G_None;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark IMAdDelegate methods
|
|
||||||
|
|
||||||
- (void)adViewDidFinishRequest:(IMAdView *)adView {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adView:(IMAdView *)view didFailRequestWithError:(IMAdError *)error {
|
|
||||||
NSLog(@"Error %@", error);
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adViewWillPresentScreen:(IMAdView *)adView {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adViewWillDismissScreen:(IMAdView *)adView {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adViewWillLeaveApplication:(IMAdView *)adView {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterJumpTap.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "JTAdWidget.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterJumpTap : AdWhirlAdNetworkAdapter <JTAdWidgetDelegate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,238 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterJumpTap.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterJumpTap.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterJumpTap
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeJumpTap;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
JTAdWidget *widget = [[JTAdWidget alloc] initWithDelegate:self
|
|
||||||
shouldStartLoading:YES];
|
|
||||||
widget.frame = kAdWhirlViewDefaultFrame;
|
|
||||||
widget.refreshInterval = 0; // do not self-refresh
|
|
||||||
self.adNetworkView = widget;
|
|
||||||
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(jumptapTransitionType)]) {
|
|
||||||
widget.transition = [adWhirlDelegate jumptapTransitionType];
|
|
||||||
}
|
|
||||||
[widget release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
// no way to set JTAdWidget's delegate to nil
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark JTAdWidgetDelegate methods
|
|
||||||
|
|
||||||
- (NSString *)publisherId:(id)theWidget {
|
|
||||||
NSString *pubId = networkConfig.pubId;
|
|
||||||
if (pubId == nil) {
|
|
||||||
NSDictionary *cred = networkConfig.credentials;
|
|
||||||
if (cred != nil) {
|
|
||||||
pubId = [cred objectForKey:@"publisherID"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)site:(id)theWidget {
|
|
||||||
NSString *siteId = nil;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(jumptapSiteId)]) {
|
|
||||||
siteId = [adWhirlDelegate jumptapSiteId];
|
|
||||||
}
|
|
||||||
if (siteId == nil) {
|
|
||||||
NSDictionary *cred = networkConfig.credentials;
|
|
||||||
if (cred != nil) {
|
|
||||||
siteId = [cred objectForKey:@"siteID"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return siteId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)adSpot:(id)theWidget {
|
|
||||||
NSString *spotId = nil;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(jumptapSpotId)]) {
|
|
||||||
spotId = [adWhirlDelegate jumptapSpotId];
|
|
||||||
}
|
|
||||||
if (spotId == nil) {
|
|
||||||
NSDictionary *cred = networkConfig.credentials;
|
|
||||||
if (cred != nil) {
|
|
||||||
spotId = [cred objectForKey:@"spotID"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return spotId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)shouldRenderAd:(id)theWidget {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:theWidget];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)beginAdInteraction:(id)theWidget {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)endAdInteraction:(id)theWidget {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWidget:(id)theWidget didFailToShowAd:(NSError *)error {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWidget:(id)theWidget didFailToRequestAd:(NSError *)error {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)respondsToSelector:(SEL)selector {
|
|
||||||
if (selector == @selector(location:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(query:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(keywords)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(category:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(jumptapCategory)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(adultContent:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(jumptapAdultContent)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return [super respondsToSelector:selector];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark JTAdWidgetDelegate methods -Targeting
|
|
||||||
|
|
||||||
- (NSString *)query:(id)theWidget {
|
|
||||||
return [adWhirlDelegate keywords];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)category:(id)theWidget {
|
|
||||||
return [adWhirlDelegate jumptapCategory];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (AdultContent)adultContent:(id)theWidget {
|
|
||||||
return [adWhirlDelegate jumptapAdultContent];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark JTAdWidgetDelegate methods -General Configuration
|
|
||||||
|
|
||||||
- (NSDictionary*)extraParameters:(id)theWidget {
|
|
||||||
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:10];
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]) {
|
|
||||||
NSInteger age = [self helperCalculateAge];
|
|
||||||
if (age >= 0)
|
|
||||||
[dict setObject:[NSString stringWithFormat:@"%d",age] forKey:@"mt-age"];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(gender)]) {
|
|
||||||
NSString *gender = [adWhirlDelegate gender];
|
|
||||||
if (gender != nil)
|
|
||||||
[dict setObject:gender forKey:@"mt-gender"];
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(incomeLevel)]) {
|
|
||||||
NSUInteger income = [adWhirlDelegate incomeLevel];
|
|
||||||
NSString *level = nil;
|
|
||||||
if (income < 15000) {
|
|
||||||
level = @"000_015";
|
|
||||||
}
|
|
||||||
else if (income < 20000) {
|
|
||||||
level = @"015_020";
|
|
||||||
}
|
|
||||||
else if (income < 30000) {
|
|
||||||
level = @"020_030";
|
|
||||||
}
|
|
||||||
else if (income < 40000) {
|
|
||||||
level = @"030_040";
|
|
||||||
}
|
|
||||||
else if (income < 50000) {
|
|
||||||
level = @"040_050";
|
|
||||||
}
|
|
||||||
else if (income < 75000) {
|
|
||||||
level = @"050_075";
|
|
||||||
}
|
|
||||||
else if (income < 100000) {
|
|
||||||
level = @"075_100";
|
|
||||||
}
|
|
||||||
else if (income < 125000) {
|
|
||||||
level = @"100_125";
|
|
||||||
}
|
|
||||||
else if (income < 150000) {
|
|
||||||
level = @"125_150";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
level = @"150_OVER";
|
|
||||||
}
|
|
||||||
[dict setObject:level forKey:@"mt-hhi"];
|
|
||||||
}
|
|
||||||
return dict;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)adBackgroundColor:(id)theWidget {
|
|
||||||
return [self helperBackgroundColorToUse];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)adForegroundColor:(id)theWidget {
|
|
||||||
return [self helperTextColorToUse];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark JTAdWidgetDelegate methods -Location Configuration
|
|
||||||
|
|
||||||
- (BOOL)allowLocationUse:(id)theWidget {
|
|
||||||
return adWhirlConfig.locationOn;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CLLocation*)location:(id)theWidget {
|
|
||||||
if (![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
return [adWhirlDelegate locationInfo];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark JTAdWidgetDelegate methods -Ad Display and User Interaction
|
|
||||||
// The ad orientation changed
|
|
||||||
//- (void)adWidget:(id)theWidget orientationHasChangedTo:(UIInterfaceOrientation)interfaceOrientation;
|
|
||||||
|
|
||||||
// Language methods
|
|
||||||
//- (NSString*)getPlayVideoPrompt:(id)theWidget;
|
|
||||||
//- (NSString*)getBackButtonPrompt:(id)theWidget isInterstitial:(BOOL)isInterstitial;
|
|
||||||
//- (NSString*)getSafariButtonPrompt:(id)theWidget;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterMdotM.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
#import "AdWhirlWebBrowserController.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterMdotM : AdWhirlAdNetworkAdapter <AdWhirlCustomAdViewDelegate, AdWhirlWebBrowserControllerDelegate> {
|
|
||||||
BOOL requesting;
|
|
||||||
CLLocationManager *locationManager;
|
|
||||||
NSURLConnection *adConnection;
|
|
||||||
NSMutableData *adData;
|
|
||||||
NSURLConnection *imageConnection;
|
|
||||||
NSMutableData *imageData;
|
|
||||||
AdWhirlCustomAdView *adView;
|
|
||||||
AdWhirlWebBrowserController *webBrowserController;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,423 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterMdotM.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterMdotM.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlAdapterCustom.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
#import "CJSONDeserializer.h"
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterMdotM ()
|
|
||||||
|
|
||||||
- (BOOL)parseAdData:(NSData *)data error:(NSError **)error;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) CLLocationManager *locationManager;
|
|
||||||
@property (nonatomic,retain) NSURLConnection *adConnection;
|
|
||||||
@property (nonatomic,retain) NSURLConnection *imageConnection;
|
|
||||||
@property (nonatomic,retain) AdWhirlCustomAdView *adView;
|
|
||||||
@property (nonatomic,retain) AdWhirlWebBrowserController *webBrowserController;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterMdotM
|
|
||||||
|
|
||||||
@synthesize adConnection;
|
|
||||||
@synthesize imageConnection;
|
|
||||||
@synthesize adView;
|
|
||||||
@synthesize webBrowserController;
|
|
||||||
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeMdotM;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)useTestAd {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)])
|
|
||||||
return [adWhirlDelegate adWhirlTestMode];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf {
|
|
||||||
self = [super initWithAdWhirlDelegate:delegate
|
|
||||||
view:view
|
|
||||||
config:config
|
|
||||||
networkConfig:netConf];
|
|
||||||
if (self != nil) {
|
|
||||||
adData = [[NSMutableData alloc] init];
|
|
||||||
imageData = [[NSMutableData alloc] init];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSMutableString *)appendUserContextDic:(NSDictionary *)dic withUrl:(NSString *)sUrl {
|
|
||||||
NSArray *keyArray = [dic allKeys];
|
|
||||||
NSMutableString *str = [NSMutableString stringWithString:sUrl];
|
|
||||||
|
|
||||||
//Iterate over the context disctionary and for each kay-value pair create a string of the format &key=value
|
|
||||||
for (int i = 0; i < [keyArray count]; i++) {
|
|
||||||
[str appendFormat:@"&%@=%@",[keyArray objectAtIndex:i], [dic objectForKey:[keyArray objectAtIndex:i]]];
|
|
||||||
}
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
@synchronized(self) {
|
|
||||||
if (requesting) return;
|
|
||||||
requesting = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *appKey = networkConfig.pubId;
|
|
||||||
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(MdotMApplicationKey)] ) {
|
|
||||||
appKey = [adWhirlDelegate MdotMApplicationKey];
|
|
||||||
}
|
|
||||||
|
|
||||||
UIDevice *device = [UIDevice currentDevice];
|
|
||||||
NSBundle *bundle = [NSBundle mainBundle];
|
|
||||||
NSLocale *locale = [NSLocale currentLocale];
|
|
||||||
NSString *userAgent = [NSString stringWithFormat:@"%@ %@ (%@; %@ %@; %@)",
|
|
||||||
[bundle objectForInfoDictionaryKey:@"CFBundleDisplayName"],
|
|
||||||
[bundle objectForInfoDictionaryKey:@"CFBundleVersion"],
|
|
||||||
[device model],
|
|
||||||
[device systemName], [device systemVersion],
|
|
||||||
[locale localeIdentifier]];
|
|
||||||
int test;
|
|
||||||
if ( [self useTestAd] ) {
|
|
||||||
test = 1;
|
|
||||||
} else
|
|
||||||
test = 0;
|
|
||||||
|
|
||||||
NSString *str = [NSString stringWithFormat:
|
|
||||||
@"http://ads.mdotm.com/ads/feed.php?appver=%d&v=%@&apikey=mdotm&appkey=%@&deviceid=%@&width=320&height=50&fmt=json&ua=%@&test=%d",
|
|
||||||
kAdWhirlAppVer, [[UIDevice currentDevice] systemVersion],
|
|
||||||
appKey, [[UIDevice currentDevice] uniqueIdentifier], userAgent, test];
|
|
||||||
|
|
||||||
NSMutableDictionary *userContextDic = [[NSMutableDictionary alloc] initWithCapacity:2];
|
|
||||||
if ( [userContextDic count] > 0 ) {
|
|
||||||
str = [self appendUserContextDic:userContextDic withUrl:str];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *urlString = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
|
||||||
|
|
||||||
NSURL *adRequestURL = [[NSURL alloc] initWithString:urlString];
|
|
||||||
AWLogDebug(@"Requesting MdotM ad (%@) %@", str, adRequestURL);
|
|
||||||
NSURLRequest *adRequest = [NSURLRequest requestWithURL:adRequestURL];
|
|
||||||
|
|
||||||
|
|
||||||
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:adRequest
|
|
||||||
delegate:self];
|
|
||||||
self.adConnection = conn;
|
|
||||||
[conn release];
|
|
||||||
[adRequestURL release];
|
|
||||||
[userContextDic release];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark MdotMDelegate optional methods
|
|
||||||
|
|
||||||
- (BOOL)respondsToSelector:(SEL)selector {
|
|
||||||
if (selector == @selector(location)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(location)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(userContext)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(userContext)]) {
|
|
||||||
return NO;
|
|
||||||
} return [super respondsToSelector:selector];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (CLLocationManager *)locationManager {
|
|
||||||
if (locationManager == nil) {
|
|
||||||
locationManager = [[CLLocationManager alloc] init];
|
|
||||||
}
|
|
||||||
return locationManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseEnums:(int *)val
|
|
||||||
adInfo:(NSDictionary*)info
|
|
||||||
minVal:(int)min
|
|
||||||
maxVal:(int)max
|
|
||||||
fieldName:(NSString *)name
|
|
||||||
error:(NSError **)error {
|
|
||||||
NSString *str = [info objectForKey:name];
|
|
||||||
if (str == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"MdotM ad data has no '%@' field", name]];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
int intVal = [str intValue];
|
|
||||||
if (intVal <= min || intVal >= max) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"MdotM ad data: Invalid value for %@ - %d", name, intVal]];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
*val = intVal;
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseAdData:(NSData *)data error:(NSError **)error {
|
|
||||||
NSError *jsonError = nil;
|
|
||||||
id parsed = [[CJSONDeserializer deserializer] deserialize:data error:&jsonError];
|
|
||||||
if (parsed == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdParseError
|
|
||||||
description:@"Error parsing MdotM ad JSON from server"
|
|
||||||
underlyingError:jsonError];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ([parsed isKindOfClass:[NSArray class]]) {
|
|
||||||
NSArray *ads = parsed;
|
|
||||||
NSDictionary *adInfo = nil;
|
|
||||||
if ( [ads count] == 0 ) {
|
|
||||||
return(NO);
|
|
||||||
} else {
|
|
||||||
id parsed0 =[ads objectAtIndex:0];
|
|
||||||
if ( [parsed0 isKindOfClass:[NSDictionary class]] ) {
|
|
||||||
adInfo = parsed0;
|
|
||||||
|
|
||||||
// gather up and validate ad info
|
|
||||||
NSString *text = [adInfo objectForKey:@"ad_text"];
|
|
||||||
NSString *redirectURLStr = [adInfo objectForKey:@"landing_url"];
|
|
||||||
|
|
||||||
int adTypeInt;
|
|
||||||
if (![self parseEnums:&adTypeInt
|
|
||||||
adInfo:adInfo
|
|
||||||
minVal:AWCustomAdTypeMIN
|
|
||||||
maxVal:AWCustomAdTypeMAX
|
|
||||||
fieldName:@"ad_type"
|
|
||||||
error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
AWCustomAdType adType = adTypeInt;
|
|
||||||
|
|
||||||
int launchTypeInt;
|
|
||||||
if (![self parseEnums:&launchTypeInt
|
|
||||||
adInfo:adInfo
|
|
||||||
minVal:AWCustomAdLaunchTypeMIN
|
|
||||||
maxVal:AWCustomAdLaunchTypeMAX
|
|
||||||
fieldName:@"launch_type"
|
|
||||||
error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
AWCustomAdLaunchType launchType = launchTypeInt;
|
|
||||||
AWCustomAdWebViewAnimType animType = AWCustomAdWebViewAnimTypeCurlDown;
|
|
||||||
|
|
||||||
NSURL *redirectURL = nil;
|
|
||||||
if (redirectURLStr == nil) {
|
|
||||||
AWLogWarn(@"No redirect URL for MdotM ad");
|
|
||||||
} else {
|
|
||||||
redirectURL = [[NSURL alloc] initWithString:redirectURLStr];
|
|
||||||
if (!redirectURL)
|
|
||||||
AWLogWarn(@"MdotM ad: Malformed redirect URL string %@", redirectURLStr);
|
|
||||||
}
|
|
||||||
AWLogDebug(@"Got MdotM ad %@ %@ %d %d %d", text, redirectURL,
|
|
||||||
adType, launchType, animType);
|
|
||||||
|
|
||||||
self.adView = [[AdWhirlCustomAdView alloc] initWithDelegate:self
|
|
||||||
text:text
|
|
||||||
redirectURL:redirectURL
|
|
||||||
clickMetricsURL:nil
|
|
||||||
adType:adType
|
|
||||||
launchType:launchType
|
|
||||||
animType:animType
|
|
||||||
backgroundColor:[self helperBackgroundColorToUse]
|
|
||||||
textColor:[self helperTextColorToUse]];
|
|
||||||
[self.adView release];
|
|
||||||
self.adNetworkView = adView;
|
|
||||||
[redirectURL release];
|
|
||||||
if (adView == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:@"Error initializing MdotM ad view"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// fetch image
|
|
||||||
id imageURL = [adInfo objectForKey:@"img_url"];
|
|
||||||
if ( [imageURL isKindOfClass:[NSString class]]) {
|
|
||||||
AWLogDebug(@"Request MdotM ad image at %@", imageURL);
|
|
||||||
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:imageURL]];
|
|
||||||
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:imageRequest
|
|
||||||
delegate:self];
|
|
||||||
self.imageConnection = conn;
|
|
||||||
[conn release];
|
|
||||||
} else {
|
|
||||||
return(NO);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return(NO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:@"Expected top-level dictionary in MdotM ad data"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
AdWhirlCustomAdView *theAdView = (AdWhirlCustomAdView *)self.adNetworkView;
|
|
||||||
if (theAdView != nil) {
|
|
||||||
theAdView.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[locationManager release], locationManager = nil;
|
|
||||||
[adConnection release], adConnection = nil;
|
|
||||||
[adData release], adData = nil;
|
|
||||||
[imageConnection release], imageConnection = nil;
|
|
||||||
[imageData release], imageData = nil;
|
|
||||||
[adView release], adView = nil;
|
|
||||||
[webBrowserController release], webBrowserController = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark NSURLConnection delegate methods.
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didReceiveResponse:(NSURLResponse *)response {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[adData setLength:0];
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
[imageData setLength:0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didFailWithError:(NSError *)error {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[adWhirlView adapter:self didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdConnectionError
|
|
||||||
description:@"Error connecting to MdotM ad server"
|
|
||||||
underlyingError:error]];
|
|
||||||
requesting = NO;
|
|
||||||
} else if (conn == imageConnection) {
|
|
||||||
[adWhirlView adapter:self didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdConnectionError
|
|
||||||
description:@"Error connecting to MdotM to fetch image"
|
|
||||||
underlyingError:error]];
|
|
||||||
requesting = NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connectionDidFinishLoading:(NSURLConnection *)conn {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
NSError *error = nil;
|
|
||||||
if (![self parseAdData:adData error:&error]) {
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
requesting = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
UIImage *image = [[UIImage alloc] initWithData:imageData];
|
|
||||||
if (image == nil) {
|
|
||||||
[adWhirlView adapter:self
|
|
||||||
didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdImageError
|
|
||||||
description:@"Cannot initialize MdotM ad image from data"]];
|
|
||||||
requesting = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
adView.image = image;
|
|
||||||
[adView setNeedsDisplay];
|
|
||||||
[image release];
|
|
||||||
requesting = NO;
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:self.adView];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[adData appendData:data];
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
[imageData appendData:data];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark AdWhirlCustomAdViewDelegate methods
|
|
||||||
|
|
||||||
- (void)adTapped:(AdWhirlCustomAdView *)ad {
|
|
||||||
if (ad != adView) return;
|
|
||||||
if (ad.clickMetricsURL != nil) {
|
|
||||||
NSURLRequest *metRequest = [NSURLRequest requestWithURL:ad.clickMetricsURL];
|
|
||||||
[NSURLConnection connectionWithRequest:metRequest
|
|
||||||
delegate:nil]; // fire and forget
|
|
||||||
}
|
|
||||||
if (ad.redirectURL == nil) {
|
|
||||||
AWLogError(@"MdotM ad redirect URL is nil");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (ad.launchType) {
|
|
||||||
case AWCustomAdLaunchTypeSafari:
|
|
||||||
[[UIApplication sharedApplication] openURL:ad.redirectURL];
|
|
||||||
break;
|
|
||||||
case AWCustomAdLaunchTypeCanvas:
|
|
||||||
if (self.webBrowserController == nil) {
|
|
||||||
AdWhirlWebBrowserController *ctrlr = [[AdWhirlWebBrowserController alloc] init];
|
|
||||||
self.webBrowserController = ctrlr;
|
|
||||||
[ctrlr release];
|
|
||||||
}
|
|
||||||
webBrowserController.delegate = self;
|
|
||||||
[webBrowserController presentWithController:[adWhirlDelegate viewControllerForPresentingModalView]
|
|
||||||
transition:ad.animType];
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
[webBrowserController loadURL:ad.redirectURL];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
AWLogError(@"MdotM ad: Unsupported launch type %d", ad.launchType);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark AdWhirlWebBrowserControllerDelegate methods
|
|
||||||
|
|
||||||
- (void)webBrowserClosed:(AdWhirlWebBrowserController *)controller {
|
|
||||||
if (controller != webBrowserController) return;
|
|
||||||
self.webBrowserController = nil; // don't keep around to save memory
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterMillennial.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "MMAdView.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterMillennial : AdWhirlAdNetworkAdapter <MMAdDelegate> {
|
|
||||||
NSMutableDictionary *requestData;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,227 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterMillennial.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterMillennial.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
#define kMillennialAdFrame (CGRectMake(0, 0, 320, 53))
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterMillennial ()
|
|
||||||
|
|
||||||
- (CLLocationDegrees)latitude;
|
|
||||||
|
|
||||||
- (CLLocationDegrees)longitude;
|
|
||||||
|
|
||||||
- (NSInteger)age;
|
|
||||||
|
|
||||||
- (NSString *)zipCode;
|
|
||||||
|
|
||||||
- (NSString *)sex;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterMillennial
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeMillennial;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
NSString *apID;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(millennialMediaApIDString)]) {
|
|
||||||
apID = [adWhirlDelegate millennialMediaApIDString];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
apID = networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
requestData = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
@"adwhirl", @"vendor",
|
|
||||||
nil];
|
|
||||||
if ([self respondsToSelector:@selector(zipCode)]) {
|
|
||||||
[requestData setValue:[self zipCode] forKey:@"zip"];
|
|
||||||
}
|
|
||||||
if ([self respondsToSelector:@selector(age)]) {
|
|
||||||
[requestData setValue:[NSString stringWithFormat:@"%d",[self age]] forKey:@"age"];
|
|
||||||
}
|
|
||||||
if ([self respondsToSelector:@selector(sex)]) {
|
|
||||||
[requestData setValue:[self sex] forKey:@"sex"];
|
|
||||||
}
|
|
||||||
if ([self respondsToSelector:@selector(latitude)]) {
|
|
||||||
[requestData setValue:[NSString stringWithFormat:@"%lf",[self latitude]] forKey:@"lat"];
|
|
||||||
}
|
|
||||||
if ([self respondsToSelector:@selector(longitude)]) {
|
|
||||||
[requestData setValue:[NSString stringWithFormat:@"%lf",[self longitude]] forKey:@"long"];
|
|
||||||
}
|
|
||||||
MMAdType adType = MMBannerAdTop;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(millennialMediaAdType)]) {
|
|
||||||
adType = [adWhirlDelegate millennialMediaAdType];
|
|
||||||
}
|
|
||||||
MMAdView *adView = [MMAdView adWithFrame:kMillennialAdFrame
|
|
||||||
type:adType
|
|
||||||
apid:apID
|
|
||||||
delegate:self
|
|
||||||
loadAd:YES
|
|
||||||
startTimer:NO];
|
|
||||||
self.adNetworkView = adView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
MMAdView *adView = (MMAdView *)adNetworkView;
|
|
||||||
if (adView != nil) {
|
|
||||||
[adView setRefreshTimerEnabled:false];
|
|
||||||
adView.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[requestData release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark MMAdDelegate methods
|
|
||||||
|
|
||||||
- (NSDictionary *)requestData {
|
|
||||||
AWLogDebug(@"Sending requestData to MM: %@", requestData);
|
|
||||||
return requestData;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adRequestSucceeded:(MMAdView *)adView {
|
|
||||||
// millennial ads are slightly taller than default frame, at 53 pixels.
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adNetworkView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adRequestFailed:(MMAdView *)adView {
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adModalWillAppear {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adModalWasDismissed {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark requestData optional methods
|
|
||||||
|
|
||||||
// The follow is kept for gathering requestData
|
|
||||||
|
|
||||||
- (BOOL)respondsToSelector:(SEL)selector {
|
|
||||||
if (selector == @selector(latitude)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(longitude)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(age)
|
|
||||||
&& (!([adWhirlDelegate respondsToSelector:@selector(millennialMediaAge)]
|
|
||||||
|| [adWhirlDelegate respondsToSelector:@selector(dateOfBirth)])
|
|
||||||
|| [self age] < 0)) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(zipCode)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(postalCode)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(sex)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(gender)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(householdIncome)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(incomeLevel)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(educationLevel)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(millennialMediaEducationLevel)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(ethnicity)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(millennialMediaEthnicity)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return [super respondsToSelector:selector];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CLLocationDegrees)latitude {
|
|
||||||
CLLocation *loc = [adWhirlDelegate locationInfo];
|
|
||||||
if (loc == nil) return 0.0;
|
|
||||||
return loc.coordinate.latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CLLocationDegrees)longitude {
|
|
||||||
CLLocation *loc = [adWhirlDelegate locationInfo];
|
|
||||||
if (loc == nil) return 0.0;
|
|
||||||
return loc.coordinate.longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)age {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(millennialMediaAge)]) {
|
|
||||||
return [adWhirlDelegate millennialMediaAge];
|
|
||||||
}
|
|
||||||
return [self helperCalculateAge];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)zipCode {
|
|
||||||
return [adWhirlDelegate postalCode];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)sex {
|
|
||||||
NSString *gender = [adWhirlDelegate gender];
|
|
||||||
NSString *sex = @"";
|
|
||||||
if (gender == nil)
|
|
||||||
return sex;
|
|
||||||
if ([gender compare:@"m"] == NSOrderedSame) {
|
|
||||||
sex = @"M";
|
|
||||||
}
|
|
||||||
else if ([gender compare:@"f"] == NSOrderedSame) {
|
|
||||||
sex = @"F";
|
|
||||||
}
|
|
||||||
return sex;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
- (NSInteger)householdIncome {
|
|
||||||
return (NSInteger)[adWhirlDelegate incomeLevel];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (MMEducation)educationLevel {
|
|
||||||
return [adWhirlDelegate millennialMediaEducationLevel];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (MMEthnicity)ethnicity {
|
|
||||||
return [adWhirlDelegate millennialMediaEthnicity];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterNexage.h
|
|
||||||
Copyright 2011 Google, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "NexageDelegateProtocol.h"
|
|
||||||
|
|
||||||
@class NexageAdViewController;
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterNexage : AdWhirlAdNetworkAdapter
|
|
||||||
<NexageDelegateProtocol> {
|
|
||||||
NexageAdViewController* adViewController;
|
|
||||||
NSString* position;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
- (NSDate *)dateOfBirth;
|
|
||||||
- (NSString *)postCode;
|
|
||||||
- (NSString *)gender;
|
|
||||||
- (NSString *)keywords;
|
|
||||||
- (NSInteger)houseIncome;
|
|
||||||
- (NSString *)city;
|
|
||||||
- (NSString *)designatedMarketArea;
|
|
||||||
- (NSString *)country;
|
|
||||||
- (NSString *)ethnicity;
|
|
||||||
- (NSString *)maritalStatus;
|
|
||||||
- (NSString *)areaCode;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterNexage.m
|
|
||||||
Copyright 2011 Google, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterNexage.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "NexageAdViewController.h"
|
|
||||||
#import "NexageAdParameters.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterNexage
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeNexage;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd{
|
|
||||||
NSDictionary* atts = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
[self dateOfBirth], @"u(dob)",
|
|
||||||
[self country], @"u(country)",
|
|
||||||
[self city], @"u(city)",
|
|
||||||
[self designatedMarketArea], @"u(dma)",
|
|
||||||
[self ethnicity], @"u(eth)",
|
|
||||||
[self gender], @"u(gender)",
|
|
||||||
[NSNumber numberWithDouble:[self houseIncome]], @"u(hhi)",
|
|
||||||
[self keywords], @"u(keywords)",
|
|
||||||
[self maritalStatus], @"u(marital)",
|
|
||||||
[self postCode], @"u(zip)",
|
|
||||||
nil];
|
|
||||||
|
|
||||||
NSDictionary* credDict;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(nexageDictionary)]) {
|
|
||||||
credDict = [adWhirlDelegate nexageDictionary];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
credDict = [networkConfig credentials];
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL testMode = NO;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)]
|
|
||||||
&& [adWhirlDelegate adWhirlTestMode]) {
|
|
||||||
testMode = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Nexage does weird things with position which can result in an over-release,
|
|
||||||
// so we're basically forced to leak this...
|
|
||||||
position = [[credDict objectForKey:@"position"] copy];
|
|
||||||
if(position == nil){
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
adViewController =
|
|
||||||
[[NexageAdViewController alloc] initWithDelegate:position delegate:self];
|
|
||||||
[adViewController setEnable:YES];
|
|
||||||
|
|
||||||
|
|
||||||
[adViewController setAttributes:atts];
|
|
||||||
[adViewController setTestMode:testMode];
|
|
||||||
[adViewController locationAware:adWhirlConfig.locationOn];
|
|
||||||
#ifdef ADWHIRL_DEBUG
|
|
||||||
[adViewController enableLogging:YES];
|
|
||||||
#endif
|
|
||||||
self.adNetworkView = adViewController.view;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
if (adViewController != nil) {
|
|
||||||
adViewController.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[self stopBeingDelegate];
|
|
||||||
[adViewController setAttributes:nil];
|
|
||||||
[adViewController release];
|
|
||||||
adViewController = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark NexageDelegateProtocol
|
|
||||||
|
|
||||||
- (void)adReceived:(UIView *)ad {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:ad];
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* This method will be called when user clicks the ad banner.
|
|
||||||
* The URL is an optional parameter, if Ad is from the Nexage mediation
|
|
||||||
* platform, you will get validate url, if it is nil, that means the action
|
|
||||||
* is from integrated sdk. Please check if (url == nil). The return YES, means
|
|
||||||
* the sdk will handle click event, otherwise sdk will ignore the user action.
|
|
||||||
* Basic Ad network principle should always return YES. Please refer our dev
|
|
||||||
* document for details
|
|
||||||
*/
|
|
||||||
- (BOOL)adActionShouldBegin:(NSURLRequest *)request
|
|
||||||
willLeaveApplication:(BOOL)willLeave {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The delegate will be called when full screen web browser is closed
|
|
||||||
*/
|
|
||||||
- (void)adFullScreenWebBrowserWillClose {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* identify the ad did not receive at this momnent.
|
|
||||||
*/
|
|
||||||
- (void)didFailToReceiveAd {
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)dcnForAd {
|
|
||||||
NSDictionary *credDict;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(nexageDictionary)]) {
|
|
||||||
credDict = [adWhirlDelegate nexageDictionary];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
credDict = [networkConfig credentials];
|
|
||||||
}
|
|
||||||
return [credDict objectForKey:@"dcn"];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController*)currentViewController {
|
|
||||||
return [adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark user profiles
|
|
||||||
|
|
||||||
- (NSDate *)dateOfBirth {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(dateOfBirth)])
|
|
||||||
return [adWhirlDelegate dateOfBirth];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)postCode {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(postalCode)])
|
|
||||||
return [adWhirlDelegate postalCode];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)gender {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(gender)])
|
|
||||||
return [adWhirlDelegate gender];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)keywords {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(keywords)])
|
|
||||||
return [adWhirlDelegate keywords];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)houseIncome {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(incomeLevel)])
|
|
||||||
return [adWhirlDelegate incomeLevel];
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)city {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(nexageCity)])
|
|
||||||
return [adWhirlDelegate nexageCity];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)designatedMarketArea {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(nexageDesignatedMarketArea)])
|
|
||||||
return [adWhirlDelegate nexageDesignatedMarketArea];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)country {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(nexageCountry)])
|
|
||||||
return [adWhirlDelegate nexageCountry];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)ethnicity {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(nexageEthnicity)])
|
|
||||||
return [adWhirlDelegate nexageEthnicity];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)maritalStatus {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(nexageMaritalStatus)])
|
|
||||||
return [adWhirlDelegate nexageMaritalStatus];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)areaCode {
|
|
||||||
if([adWhirlDelegate respondsToSelector:@selector(areaCode)])
|
|
||||||
return [adWhirlDelegate areaCode];
|
|
||||||
else return nil;
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterOneRiot.h
|
|
||||||
|
|
||||||
Copyright 2010 OneRiot, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "OneRiotAd.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterOneRiot : AdWhirlAdNetworkAdapter {
|
|
||||||
OneRiotAd *adControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterOneRiot.m
|
|
||||||
|
|
||||||
Copyright 2010 OneRiot, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterOneRiot.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterOneRiot ()
|
|
||||||
|
|
||||||
@property (nonatomic,retain) OneRiotAd *adControl;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterOneRiot
|
|
||||||
|
|
||||||
@synthesize adControl;
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeOneRiot;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
NSString *appId = networkConfig.pubId;
|
|
||||||
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(oneRiotAppID)]) {
|
|
||||||
appId = [adWhirlDelegate oneRiotAppID];
|
|
||||||
}
|
|
||||||
|
|
||||||
adControl = [[OneRiotAd alloc] initWithAppId:appId andWidth:300
|
|
||||||
andHeight:50];
|
|
||||||
|
|
||||||
adControl.RefreshInterval = adWhirlConfig.refreshInterval;
|
|
||||||
adControl.ReportGPS = adWhirlConfig.locationOn;
|
|
||||||
|
|
||||||
if ([adWhirlDelegate
|
|
||||||
respondsToSelector:@selector(oneRiotContextParameters)]) {
|
|
||||||
NSArray* contextParams = [adWhirlDelegate oneRiotContextParameters];
|
|
||||||
|
|
||||||
for (NSString* param in contextParams){
|
|
||||||
[adControl addContextParameters:param];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[adControl loadAd];
|
|
||||||
self.adNetworkView = adControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
-(void) dealloc {
|
|
||||||
[adControl release];
|
|
||||||
adControl = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterQuattro.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "QWAdView.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterQuattro : AdWhirlAdNetworkAdapter <QWAdViewDelegate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,222 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterQuattro.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterQuattro.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "QWAdView.h"
|
|
||||||
#import "QWTestMode.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterQuattro
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeQuattro;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
QWEnableLocationServicesForAds(adWhirlConfig.locationOn);
|
|
||||||
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)]
|
|
||||||
&& [adWhirlDelegate adWhirlTestMode]) {
|
|
||||||
QWSetTestMode(YES);
|
|
||||||
QWSetLogging(YES);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
QWSetTestMode(NO);
|
|
||||||
QWSetLogging(NO);
|
|
||||||
}
|
|
||||||
NSDictionary *credDict;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(quattroWirelessDictionary)]) {
|
|
||||||
credDict = [adWhirlDelegate quattroWirelessDictionary];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
credDict = [networkConfig credentials];
|
|
||||||
}
|
|
||||||
NSString *pubId = [credDict objectForKey:@"publisherID"];
|
|
||||||
NSString *siteId = [credDict objectForKey:@"siteID"];
|
|
||||||
QWAdType adType = QWAdTypeBanner;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(quattroWirelessAdType)]) {
|
|
||||||
adType = (QWAdType)[adWhirlDelegate quattroWirelessAdType];
|
|
||||||
}
|
|
||||||
UIDeviceOrientation orientation;
|
|
||||||
if ([self.adWhirlDelegate respondsToSelector:@selector(adWhirlCurrentOrientation)]) {
|
|
||||||
orientation = [self.adWhirlDelegate adWhirlCurrentOrientation];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
orientation = [UIDevice currentDevice].orientation;
|
|
||||||
}
|
|
||||||
QWAdView *quattroAd = [QWAdView adViewWithType:adType
|
|
||||||
publisherID:pubId
|
|
||||||
siteID:siteId
|
|
||||||
orientation:orientation
|
|
||||||
delegate:self];
|
|
||||||
quattroAd.textColor = [self helperTextColorToUse];
|
|
||||||
quattroAd.backgroundColor = [self helperBackgroundColorToUse];
|
|
||||||
[quattroAd displayNewAd];
|
|
||||||
self.adNetworkView = quattroAd;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
QWAdView *quattroAd = (QWAdView *)self.adNetworkView;
|
|
||||||
if (quattroAd != nil) {
|
|
||||||
quattroAd.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark QWAdViewDelegate methods
|
|
||||||
|
|
||||||
- (void)adView:(QWAdView *)adView didDisplayAd:(QWAd *)ad {
|
|
||||||
// somehow the test banner ad is showing 80 pixels as height sometimes.
|
|
||||||
// check for that and adjust
|
|
||||||
AWLogDebug(@"Quattro reported frame %@", NSStringFromCGRect(self.adNetworkView.frame));
|
|
||||||
if (self.adNetworkView.frame.size.height > 50.0) {
|
|
||||||
CGRect f = adNetworkView.frame;
|
|
||||||
f.size.height = 50;
|
|
||||||
adNetworkView.frame = f;
|
|
||||||
}
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dispatchError:(NSError*)error
|
|
||||||
{
|
|
||||||
[adWhirlView adapter:self didFailAd:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adView:(QWAdView *)adView failedWithError:(NSError *)error {
|
|
||||||
[self performSelectorOnMainThread:@selector(dispatchError:) withObject:error waitUntilDone:NO];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adView:(QWAdView *)adView displayLandingPage:(UIViewController *)controller {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
[[adWhirlDelegate viewControllerForPresentingModalView] presentModalViewController:controller
|
|
||||||
animated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adView:(QWAdView *)adView dismiss:(UIViewController *)controller {
|
|
||||||
[[adWhirlDelegate viewControllerForPresentingModalView] dismissModalViewControllerAnimated:YES];
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark QWAdViewDelegate optional methods
|
|
||||||
|
|
||||||
- (BOOL)respondsToSelector:(SEL)selector {
|
|
||||||
if (selector == @selector(latitude:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(longitude:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(age:)
|
|
||||||
&& (![adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]
|
|
||||||
|| [self age:nil] < 0)) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(zipcode:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(postalCode)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(gender:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(gender)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(income:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(incomeLevel)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(education:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(quattroWirelessEducationLevel)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(birthdate:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(dateOfBirth)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
else if (selector == @selector(ethnicity:)
|
|
||||||
&& ![adWhirlDelegate respondsToSelector:@selector(quattroWirelessEthnicity)]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return [super respondsToSelector:selector];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (double)latitude:(QWAdView *)adView {
|
|
||||||
CLLocation *loc = [adWhirlDelegate locationInfo];
|
|
||||||
if (loc == nil) return 0.0;
|
|
||||||
return loc.coordinate.latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (double)longitude:(QWAdView *)adView {
|
|
||||||
CLLocation *loc = [adWhirlDelegate locationInfo];
|
|
||||||
if (loc == nil) return 0.0;
|
|
||||||
return loc.coordinate.longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)zipcode:(QWAdView *)adView {
|
|
||||||
return [adWhirlDelegate postalCode];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)age:(QWAdView *)adView {
|
|
||||||
return [self helperCalculateAge];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (QWGender)gender:(QWAdView *)adView {
|
|
||||||
NSString *gender = [adWhirlDelegate gender];
|
|
||||||
QWGender sex = QWGenderUnknown;
|
|
||||||
if (gender == nil)
|
|
||||||
return sex;
|
|
||||||
if ([gender compare:@"m"] == NSOrderedSame) {
|
|
||||||
sex = QWGenderMale;
|
|
||||||
}
|
|
||||||
else if ([gender compare:@"f"] == NSOrderedSame) {
|
|
||||||
sex = QWGenderFemale;
|
|
||||||
}
|
|
||||||
return sex;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)income:(QWAdView *)adView {
|
|
||||||
return [adWhirlDelegate incomeLevel];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (QWEducationLevel)education:(QWAdView *)adView {
|
|
||||||
return [adWhirlDelegate quattroWirelessEducationLevel];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSDate *)birthdate:(QWAdView *)adView {
|
|
||||||
return [adWhirlDelegate dateOfBirth];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (QWEthnicity)ethnicity:(QWAdView *)adView {
|
|
||||||
return [adWhirlDelegate quattroWirelessEthnicity];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterVideoEgg.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterVideoEgg : AdWhirlAdNetworkAdapter {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterVideoEgg.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterVideoEgg.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdFrameView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterVideoEgg ()
|
|
||||||
|
|
||||||
- (void)loadSuccess:(NSNotification *)notification;
|
|
||||||
- (void)loadFailed:(NSNotification *)notification;
|
|
||||||
- (void)launchAd:(NSNotification *)notification;
|
|
||||||
- (void)closeAd:(NSNotification *)notification;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterVideoEgg
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeVideoEgg;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
AdFrameView *aw = [[AdFrameView alloc] init];
|
|
||||||
|
|
||||||
NSDictionary *credentials = [networkConfig credentials];
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTestMode)]
|
|
||||||
&& [adWhirlDelegate adWhirlTestMode]) {
|
|
||||||
credentials = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
@"testpublisher", @"publisher",
|
|
||||||
@"testarea", @"area",
|
|
||||||
nil];
|
|
||||||
}
|
|
||||||
else if ([adWhirlDelegate respondsToSelector:@selector(videoEggConfigDictionary)]) {
|
|
||||||
credentials = [adWhirlDelegate videoEggConfigDictionary];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter];
|
|
||||||
[notifCenter addObserver:self
|
|
||||||
selector:@selector(loadSuccess:)
|
|
||||||
name:kVELoadSuccess
|
|
||||||
object:aw];
|
|
||||||
[notifCenter addObserver:self
|
|
||||||
selector:@selector(loadFailed:)
|
|
||||||
name:kVELoadFailure
|
|
||||||
object:aw];
|
|
||||||
[notifCenter addObserver:self
|
|
||||||
selector:@selector(launchAd:)
|
|
||||||
name:kVELaunchedAd
|
|
||||||
object:aw];
|
|
||||||
[notifCenter addObserver:self
|
|
||||||
selector:@selector(closeAd:)
|
|
||||||
name:kVEClosedAd
|
|
||||||
object:aw];
|
|
||||||
|
|
||||||
VEConfig *config = [VEConfig dictionaryWithDictionary:credentials];
|
|
||||||
[aw requestAd:config];
|
|
||||||
self.adNetworkView = aw;
|
|
||||||
[aw release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark VideoEgg notification methods
|
|
||||||
|
|
||||||
- (void)loadSuccess:(NSNotification *)notification {
|
|
||||||
CGRect frame = CGRectMake(0,0,ADFRAME_BANNER_WIDTH, ADFRAME_BANNER_HEIGHT);
|
|
||||||
adNetworkView.frame = frame;
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adNetworkView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)loadFailed:(NSNotification *)notification {
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)launchAd:(NSNotification *)notification {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)closeAd:(NSNotification *)notification {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterZestADZ.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "ZestadzDelegateProtocal.h"
|
|
||||||
|
|
||||||
@class ZestadzView;
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterZestADZ : AdWhirlAdNetworkAdapter <ZestadzDelegate> {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterZestADZ.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterZestADZ.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "ZestadzView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterZestADZ
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeZestADZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
ZestadzView *zestView = [ZestadzView requestAdWithDelegate:self];
|
|
||||||
self.adNetworkView = zestView;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
// no way to set zestView's delegate to nil
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark ZestadzDelegate required methods.
|
|
||||||
|
|
||||||
- (NSString *)clientId {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(zestADZClientID)]) {
|
|
||||||
return [adWhirlDelegate zestADZClientID];
|
|
||||||
}
|
|
||||||
return networkConfig.pubId;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)currentViewController {
|
|
||||||
return [adWhirlDelegate viewControllerForPresentingModalView];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark ZestadzDelegate notification methods
|
|
||||||
|
|
||||||
- (void)didReceiveAd:(ZestadzView *)adView {
|
|
||||||
[adWhirlView adapter:self didReceiveAdView:adView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didFailToReceiveAd:(ZestadzView *)adView {
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willPresentFullScreenModal {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didDismissFullScreenModal {
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark ZestadzDelegate config methods
|
|
||||||
- (UIColor *)adBackgroundColor {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlAdBackgroundColor)]) {
|
|
||||||
return [adWhirlDelegate adWhirlAdBackgroundColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)keywords {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(keywords)]) {
|
|
||||||
return [adWhirlDelegate keywords];
|
|
||||||
}
|
|
||||||
|
|
||||||
return @"iphone ipad ipod";
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
ARRollerView.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "ARRollerView.h"
|
|
||||||
#import "AdWhirlView+.h"
|
|
||||||
|
|
||||||
@interface ARRollerView ()
|
|
||||||
- (id)initWithDelegate:(id<ARRollerDelegate>)delegate;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ARRollerView
|
|
||||||
|
|
||||||
+ (ARRollerView*)requestRollerViewWithDelegate:(id<ARRollerDelegate>)delegate {
|
|
||||||
return [[[ARRollerView alloc] initWithDelegate:delegate] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithDelegate:(id<ARRollerDelegate>)d {
|
|
||||||
return [super initWithDelegate:d];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getNextAd {
|
|
||||||
[self requestFreshAd];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setDelegateToNil {
|
|
||||||
self.delegate = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AWNetworkReachabilityDelegate.h
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
@class AWNetworkReachabilityWrapper;
|
|
||||||
|
|
||||||
@protocol AWNetworkReachabilityDelegate <NSObject>
|
|
||||||
|
|
||||||
@optional
|
|
||||||
- (void)reachabilityBecameReachable:(AWNetworkReachabilityWrapper *)reachability;
|
|
||||||
- (void)reachabilityNotReachable:(AWNetworkReachabilityWrapper *)reachability;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AWNetworkReachabilityWrapper.h
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <SystemConfiguration/SystemConfiguration.h>
|
|
||||||
#import <sys/socket.h>
|
|
||||||
#import <netinet/in.h>
|
|
||||||
#import <netinet6/in6.h>
|
|
||||||
#import <arpa/inet.h>
|
|
||||||
#import <netdb.h>
|
|
||||||
#import "AWNetworkReachabilityDelegate.h"
|
|
||||||
|
|
||||||
@class AWNetworkReachabilityWrapper;
|
|
||||||
|
|
||||||
|
|
||||||
// Created for ease of mocking (hence testing)
|
|
||||||
@interface AWNetworkReachabilityWrapper : NSObject {
|
|
||||||
NSString *hostname_;
|
|
||||||
SCNetworkReachabilityRef reachability_;
|
|
||||||
id<AWNetworkReachabilityDelegate> delegate_;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) NSString *hostname;
|
|
||||||
@property (nonatomic,assign) id<AWNetworkReachabilityDelegate> delegate;
|
|
||||||
|
|
||||||
+ (AWNetworkReachabilityWrapper *) reachabilityWithHostname:(NSString *)host
|
|
||||||
callbackDelegate:(id<AWNetworkReachabilityDelegate>)delegate;
|
|
||||||
|
|
||||||
- (id)initWithHostname:(NSString *)host
|
|
||||||
callbackDelegate:(id<AWNetworkReachabilityDelegate>)delegate;
|
|
||||||
|
|
||||||
- (BOOL)scheduleInCurrentRunLoop;
|
|
||||||
|
|
||||||
- (BOOL)unscheduleFromCurrentRunLoop;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AWNetworkReachabilityWrapper.m
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AWNetworkReachabilityWrapper.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
static void reachabilityCallback(SCNetworkReachabilityRef reachability,
|
|
||||||
SCNetworkReachabilityFlags flags,
|
|
||||||
void* data);
|
|
||||||
|
|
||||||
@implementation AWNetworkReachabilityWrapper
|
|
||||||
|
|
||||||
@synthesize hostname = hostname_;
|
|
||||||
@synthesize delegate = delegate_;
|
|
||||||
|
|
||||||
+ (AWNetworkReachabilityWrapper *) reachabilityWithHostname:(NSString *)host
|
|
||||||
callbackDelegate:(id<AWNetworkReachabilityDelegate>)delegate {
|
|
||||||
return [[[AWNetworkReachabilityWrapper alloc] initWithHostname:host
|
|
||||||
callbackDelegate:delegate]
|
|
||||||
autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithHostname:(NSString *)host
|
|
||||||
callbackDelegate:(id<AWNetworkReachabilityDelegate>)delegate {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
reachability_ = SCNetworkReachabilityCreateWithName(NULL,
|
|
||||||
[host UTF8String]);
|
|
||||||
if (reachability_ == nil) {
|
|
||||||
AWLogError(@"Error creating SCNetworkReachability");
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
hostname_ = [[NSString alloc] initWithString:host];
|
|
||||||
self.delegate = delegate;
|
|
||||||
|
|
||||||
// set callback
|
|
||||||
SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL};
|
|
||||||
if (!SCNetworkReachabilitySetCallback(reachability_,
|
|
||||||
&reachabilityCallback,
|
|
||||||
&context)) {
|
|
||||||
AWLogError(@"Error setting SCNetworkReachability callback");
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)scheduleInCurrentRunLoop {
|
|
||||||
return SCNetworkReachabilityScheduleWithRunLoop(reachability_,
|
|
||||||
CFRunLoopGetCurrent(),
|
|
||||||
kCFRunLoopDefaultMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)unscheduleFromCurrentRunLoop {
|
|
||||||
return SCNetworkReachabilityUnscheduleFromRunLoop(reachability_,
|
|
||||||
CFRunLoopGetCurrent(),
|
|
||||||
kCFRunLoopDefaultMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[self unscheduleFromCurrentRunLoop];
|
|
||||||
if (reachability_ != NULL) CFRelease(reachability_);
|
|
||||||
[hostname_ release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark callback methods
|
|
||||||
|
|
||||||
static void printReachabilityFlags(SCNetworkReachabilityFlags flags)
|
|
||||||
{
|
|
||||||
AWLogDebug(@"Reachability flag status: %c%c%c%c%c%c%c%c%c",
|
|
||||||
(flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
|
|
||||||
#ifdef kSCNetworkReachabilityFlagsConnectionOnDemand
|
|
||||||
(flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-',
|
|
||||||
#else
|
|
||||||
'-',
|
|
||||||
#endif
|
|
||||||
(flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-',
|
|
||||||
(flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)notifyDelegateNotReachable {
|
|
||||||
if (self.delegate != nil && [self.delegate respondsToSelector:
|
|
||||||
@selector(reachabilityNotReachable:)]) {
|
|
||||||
[self.delegate reachabilityNotReachable:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)gotCallback:(SCNetworkReachabilityRef)reachability
|
|
||||||
flags:(SCNetworkReachabilityFlags)flags {
|
|
||||||
if (reachability != reachability_) {
|
|
||||||
AWLogError(@"Unrelated reachability calling back to this object");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
printReachabilityFlags(flags);
|
|
||||||
if ((flags & kSCNetworkReachabilityFlagsReachable) == 0) {
|
|
||||||
[self notifyDelegateNotReachable];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// even if the Reachable flag is on it may not be true for immediate use
|
|
||||||
BOOL reachable = NO;
|
|
||||||
|
|
||||||
if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0) {
|
|
||||||
// no connection required, we should be able to connect, via WiFi presumably
|
|
||||||
reachable = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((
|
|
||||||
#ifdef kSCNetworkReachabilityFlagsConnectionOnDemand
|
|
||||||
(flags & kSCNetworkReachabilityFlagsConnectionOnDemand) != 0 ||
|
|
||||||
#endif
|
|
||||||
(flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0)
|
|
||||||
&& (flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0) {
|
|
||||||
// The connection is on-demand or on-traffic and no user intervention is
|
|
||||||
// needed, likely able to connect
|
|
||||||
reachable = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((flags & kSCNetworkReachabilityFlagsIsWWAN)
|
|
||||||
== kSCNetworkReachabilityFlagsIsWWAN) {
|
|
||||||
// WWAN connections are available, likely able to connect barring network
|
|
||||||
// outage...
|
|
||||||
reachable = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reachable) {
|
|
||||||
[self notifyDelegateNotReachable];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// notify delegate that host just got reachable
|
|
||||||
if (self.delegate != nil && [self.delegate respondsToSelector:
|
|
||||||
@selector(reachabilityBecameReachable:)]) {
|
|
||||||
[self.delegate reachabilityBecameReachable:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void reachabilityCallback(SCNetworkReachabilityRef reachability,
|
|
||||||
SCNetworkReachabilityFlags flags,
|
|
||||||
void* data) {
|
|
||||||
AWNetworkReachabilityWrapper *wrapper = (AWNetworkReachabilityWrapper *)data;
|
|
||||||
[wrapper gotCallback:reachability flags:flags];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkAdapter+Helpers.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdNetworkAdapter (Helpers)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses call this to notify delegate that there's going to be a full
|
|
||||||
* screen modal (usually after tap).
|
|
||||||
*/
|
|
||||||
- (void)helperNotifyDelegateOfFullScreenModal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses call this to notify delegate that the full screen modal has
|
|
||||||
* been dismissed.
|
|
||||||
*/
|
|
||||||
- (void)helperNotifyDelegateOfFullScreenModalDismissal;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Subclasses call to get various configs to use, from the AdWhirlDelegate or
|
|
||||||
* config from server.
|
|
||||||
*/
|
|
||||||
- (UIColor *)helperBackgroundColorToUse;
|
|
||||||
- (UIColor *)helperTextColorToUse;
|
|
||||||
- (UIColor *)helperSecondaryTextColorToUse;
|
|
||||||
- (NSInteger)helperCalculateAge;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkAdapter+Helpers.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlView+.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdNetworkAdapter (Helpers)
|
|
||||||
|
|
||||||
- (void)helperNotifyDelegateOfFullScreenModal {
|
|
||||||
// don't request new ad when modal view is on
|
|
||||||
adWhirlView.showingModalView = YES;
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlWillPresentFullScreenModal)]) {
|
|
||||||
[adWhirlDelegate adWhirlWillPresentFullScreenModal];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)helperNotifyDelegateOfFullScreenModalDismissal {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlDidDismissFullScreenModal)]) {
|
|
||||||
[adWhirlDelegate adWhirlDidDismissFullScreenModal];
|
|
||||||
}
|
|
||||||
adWhirlView.showingModalView = NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)helperBackgroundColorToUse {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlAdBackgroundColor)]) {
|
|
||||||
UIColor *color = [adWhirlDelegate adWhirlAdBackgroundColor];
|
|
||||||
if (color != nil) return color;
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(backgroundColor)]) {
|
|
||||||
UIColor *color = [adWhirlDelegate backgroundColor];
|
|
||||||
if (color != nil) return color;
|
|
||||||
}
|
|
||||||
return adWhirlConfig.backgroundColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)helperTextColorToUse {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlTextColor)]) {
|
|
||||||
UIColor *color = [adWhirlDelegate adWhirlTextColor];
|
|
||||||
if (color != nil) return color;
|
|
||||||
}
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(textColor)]) {
|
|
||||||
UIColor *color = [adWhirlDelegate textColor];
|
|
||||||
if (color != nil) return color;
|
|
||||||
}
|
|
||||||
return adWhirlConfig.textColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)helperSecondaryTextColorToUse {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlSecondaryTextColor)]) {
|
|
||||||
UIColor *color = [adWhirlDelegate adWhirlSecondaryTextColor];
|
|
||||||
if (color != nil) return color;
|
|
||||||
}
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)helperCalculateAge {
|
|
||||||
NSDate *birth = [adWhirlDelegate dateOfBirth];
|
|
||||||
if (birth == nil) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
NSDate *today = [[NSDate alloc] init];
|
|
||||||
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
|
|
||||||
NSDateComponents *components = [gregorian components:NSYearCalendarUnit
|
|
||||||
fromDate:birth
|
|
||||||
toDate:today
|
|
||||||
options:0];
|
|
||||||
NSInteger years = [components year];
|
|
||||||
[gregorian release];
|
|
||||||
[today release];
|
|
||||||
return years;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkAdapter.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdNetworkAdapter
|
|
||||||
|
|
||||||
@synthesize adWhirlDelegate;
|
|
||||||
@synthesize adWhirlView;
|
|
||||||
@synthesize adWhirlConfig;
|
|
||||||
@synthesize networkConfig;
|
|
||||||
@synthesize adNetworkView;
|
|
||||||
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
self.adWhirlDelegate = delegate;
|
|
||||||
self.adWhirlView = view;
|
|
||||||
self.adWhirlConfig = config;
|
|
||||||
self.networkConfig = netConf;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
AWLogCrit(@"Subclass of AdWhirlAdNetworkAdapter must implement -getAd.");
|
|
||||||
[self doesNotRecognizeSelector:_cmd];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
AWLogCrit(@"Subclass of AdWhirlAdNetworkAdapter must implement -stopBeingDelegate.");
|
|
||||||
[self doesNotRecognizeSelector:_cmd];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)shouldSendExMetric {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)rotateToOrientation:(UIInterfaceOrientation)orientation {
|
|
||||||
// do nothing by default. Subclasses implement specific handling.
|
|
||||||
AWLogDebug(@"rotate to orientation %d called for adapter %@",
|
|
||||||
orientation, NSStringFromClass([self class]));
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)isBannerAnimationOK:(AWBannerAnimationType)animType {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[self stopBeingDelegate];
|
|
||||||
adWhirlDelegate = nil;
|
|
||||||
adWhirlView = nil;
|
|
||||||
[adWhirlConfig release], adWhirlConfig = nil;
|
|
||||||
[networkConfig release], networkConfig = nil;
|
|
||||||
[adNetworkView release], adNetworkView = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdNetwork.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
#define AWAdNetworkConfigKeyType @"type"
|
|
||||||
#define AWAdNetworkConfigKeyNID @"nid"
|
|
||||||
#define AWAdNetworkConfigKeyName @"nname"
|
|
||||||
#define AWAdNetworkConfigKeyWeight @"weight"
|
|
||||||
#define AWAdNetworkConfigKeyPriority @"priority"
|
|
||||||
#define AWAdNetworkConfigKeyCred @"key"
|
|
||||||
|
|
||||||
@class AdWhirlError;
|
|
||||||
@class AdWhirlAdNetworkRegistry;
|
|
||||||
|
|
||||||
@interface AdWhirlAdNetworkConfig : NSObject {
|
|
||||||
NSInteger networkType;
|
|
||||||
NSString *nid;
|
|
||||||
NSString *networkName;
|
|
||||||
double trafficPercentage;
|
|
||||||
NSInteger priority;
|
|
||||||
NSDictionary *credentials;
|
|
||||||
Class adapterClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithDictionary:(NSDictionary *)adNetConfigDict
|
|
||||||
adNetworkRegistry:(AdWhirlAdNetworkRegistry *)registry
|
|
||||||
error:(AdWhirlError **)error;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) NSInteger networkType;
|
|
||||||
@property (nonatomic,readonly) NSString *nid;
|
|
||||||
@property (nonatomic,readonly) NSString *networkName;
|
|
||||||
@property (nonatomic,readonly) double trafficPercentage;
|
|
||||||
@property (nonatomic,readonly) NSInteger priority;
|
|
||||||
@property (nonatomic,readonly) NSDictionary *credentials;
|
|
||||||
@property (nonatomic,readonly) NSString *pubId;
|
|
||||||
@property (nonatomic,readonly) Class adapterClass;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,169 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdNetwork.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
#import "AdWhirlClassWrapper.h"
|
|
||||||
|
|
||||||
#define kAdWhirlPubIdKey @"pubid"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdNetworkConfig
|
|
||||||
|
|
||||||
@synthesize networkType;
|
|
||||||
@synthesize nid;
|
|
||||||
@synthesize networkName;
|
|
||||||
@synthesize trafficPercentage;
|
|
||||||
@synthesize priority;
|
|
||||||
@synthesize credentials;
|
|
||||||
@synthesize adapterClass;
|
|
||||||
|
|
||||||
- (id)initWithDictionary:(NSDictionary *)adNetConfigDict
|
|
||||||
adNetworkRegistry:(AdWhirlAdNetworkRegistry *)registry
|
|
||||||
error:(AdWhirlError **)error {
|
|
||||||
self = [super init];
|
|
||||||
|
|
||||||
if (self != nil) {
|
|
||||||
NSInteger temp;
|
|
||||||
id ntype = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyType];
|
|
||||||
id netId = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyNID];
|
|
||||||
id netName = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyName];
|
|
||||||
id weight = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyWeight];
|
|
||||||
id pri = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyPriority];
|
|
||||||
|
|
||||||
if (ntype == nil || netId == nil || netName == nil || pri == nil) {
|
|
||||||
NSString *errorMsg =
|
|
||||||
@"Ad network config has no network type, network id, network name, or priority";
|
|
||||||
if (error != nil) {
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:errorMsg];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(errorMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (awIntVal(&temp, ntype)) {
|
|
||||||
networkType = temp;
|
|
||||||
}
|
|
||||||
if ([netId isKindOfClass:[NSString class]]) {
|
|
||||||
nid = [[NSString alloc] initWithString:netId];
|
|
||||||
}
|
|
||||||
if ([netName isKindOfClass:[NSString class]]) {
|
|
||||||
networkName = [[NSString alloc] initWithString:netName];
|
|
||||||
}
|
|
||||||
|
|
||||||
double tempDouble;
|
|
||||||
if (weight == nil) {
|
|
||||||
trafficPercentage = 0.0;
|
|
||||||
}
|
|
||||||
else if (awDoubleVal(&tempDouble, weight)) {
|
|
||||||
trafficPercentage = tempDouble;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (awIntVal(&temp, pri)) {
|
|
||||||
priority = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (networkType == 0 || nid == nil || networkName == nil || priority == 0) {
|
|
||||||
NSString *errorMsg =
|
|
||||||
@"Ad network config has invalid network type, network id, network name or priority";
|
|
||||||
if (error != nil) {
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:errorMsg];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(errorMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
id cred = [adNetConfigDict objectForKey:AWAdNetworkConfigKeyCred];
|
|
||||||
if (cred == nil) {
|
|
||||||
credentials = nil;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ([cred isKindOfClass:[NSDictionary class]]) {
|
|
||||||
credentials = [[NSDictionary alloc] initWithDictionary:cred copyItems:YES];
|
|
||||||
}
|
|
||||||
else if ([cred isKindOfClass:[NSString class]]) {
|
|
||||||
credentials = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
||||||
[NSString stringWithString:cred], kAdWhirlPubIdKey,
|
|
||||||
nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
adapterClass = [registry adapterClassFor:networkType].theClass;
|
|
||||||
if (adapterClass == nil) {
|
|
||||||
NSString *errorMsg =
|
|
||||||
[NSString stringWithFormat:@"Ad network type %d not supported, no adapter found",
|
|
||||||
networkType];
|
|
||||||
if (error != nil) {
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:errorMsg];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(errorMsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)pubId {
|
|
||||||
if (credentials == nil) return nil;
|
|
||||||
return [credentials objectForKey:kAdWhirlPubIdKey];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)description {
|
|
||||||
NSString *creds = [self pubId];
|
|
||||||
if (creds == nil) {
|
|
||||||
creds = @"{";
|
|
||||||
for (NSString *k in [credentials keyEnumerator]) {
|
|
||||||
creds = [creds stringByAppendingFormat:@"%@:%@ ",
|
|
||||||
k, [credentials objectForKey:k]];
|
|
||||||
}
|
|
||||||
creds = [creds stringByAppendingString:@"}"];
|
|
||||||
}
|
|
||||||
return [NSString stringWithFormat:
|
|
||||||
@"name:%@ type:%d nid:%@ weight:%lf priority:%d creds:%@",
|
|
||||||
networkName, networkType, nid, trafficPercentage, priority, creds];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[nid release], nid = nil;
|
|
||||||
[networkName release], networkName = nil;
|
|
||||||
[credentials release], credentials = nil;
|
|
||||||
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkRegistry.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@class AdWhirlAdNetworkAdapter;
|
|
||||||
@class AdWhirlClassWrapper;
|
|
||||||
|
|
||||||
@interface AdWhirlAdNetworkRegistry : NSObject {
|
|
||||||
NSMutableDictionary *adapterDict;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkRegistry *)sharedRegistry;
|
|
||||||
- (void)registerClass:(Class)adapterClass;
|
|
||||||
- (AdWhirlClassWrapper *)adapterClassFor:(NSInteger)adNetworkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdNetworkRegistry.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlClassWrapper.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdNetworkRegistry
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkRegistry *)sharedRegistry {
|
|
||||||
static AdWhirlAdNetworkRegistry *registry = nil;
|
|
||||||
if (registry == nil) {
|
|
||||||
registry = [[AdWhirlAdNetworkRegistry alloc] init];
|
|
||||||
}
|
|
||||||
return registry;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
adapterDict = [[NSMutableDictionary alloc] init];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)registerClass:(Class)adapterClass {
|
|
||||||
// have to do all these to avoid compiler warnings...
|
|
||||||
NSInteger (*netTypeMethod)(id, SEL);
|
|
||||||
netTypeMethod = (NSInteger (*)(id, SEL))[adapterClass methodForSelector:@selector(networkType)];
|
|
||||||
NSInteger netType = netTypeMethod(adapterClass, @selector(networkType));
|
|
||||||
NSNumber *key = [[NSNumber alloc] initWithInteger:netType];
|
|
||||||
AdWhirlClassWrapper *wrapper = [[AdWhirlClassWrapper alloc] initWithClass:adapterClass];
|
|
||||||
[adapterDict setObject:wrapper forKey:key];
|
|
||||||
[key release];
|
|
||||||
[wrapper release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (AdWhirlClassWrapper *)adapterClassFor:(NSInteger)adNetworkType {
|
|
||||||
return [adapterDict objectForKey:[NSNumber numberWithInteger:adNetworkType]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[adapterDict release], adapterDict = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterCustom.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
#import "AdWhirlWebBrowserController.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterCustom : AdWhirlAdNetworkAdapter <AdWhirlCustomAdViewDelegate,
|
|
||||||
AdWhirlWebBrowserControllerDelegate>
|
|
||||||
{
|
|
||||||
BOOL requesting;
|
|
||||||
CLLocationManager *locationManager;
|
|
||||||
NSURLConnection *adConnection;
|
|
||||||
NSMutableData *adData;
|
|
||||||
NSURLConnection *imageConnection;
|
|
||||||
NSMutableData *imageData;
|
|
||||||
AdWhirlCustomAdView *adView;
|
|
||||||
AdWhirlWebBrowserController *webBrowserController;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,423 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterCustom.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterCustom.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
#import "CJSONDeserializer.h"
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterCustom ()
|
|
||||||
|
|
||||||
- (BOOL)parseAdData:(NSData *)data error:(NSError **)error;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) CLLocationManager *locationManager;
|
|
||||||
@property (nonatomic,retain) NSURLConnection *adConnection;
|
|
||||||
@property (nonatomic,retain) NSURLConnection *imageConnection;
|
|
||||||
@property (nonatomic,retain) AdWhirlCustomAdView *adView;
|
|
||||||
@property (nonatomic,retain) AdWhirlWebBrowserController *webBrowserController;
|
|
||||||
@property (nonatomic, assign) CGFloat scale;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterCustom
|
|
||||||
|
|
||||||
@synthesize adConnection;
|
|
||||||
@synthesize imageConnection;
|
|
||||||
@synthesize adView;
|
|
||||||
@synthesize webBrowserController;
|
|
||||||
@synthesize scale;
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeCustom;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithAdWhirlDelegate:(id<AdWhirlDelegate>)delegate
|
|
||||||
view:(AdWhirlView *)view
|
|
||||||
config:(AdWhirlConfig *)config
|
|
||||||
networkConfig:(AdWhirlAdNetworkConfig *)netConf {
|
|
||||||
self = [super initWithAdWhirlDelegate:delegate
|
|
||||||
view:view
|
|
||||||
config:config
|
|
||||||
networkConfig:netConf];
|
|
||||||
if (self != nil) {
|
|
||||||
adData = [[NSMutableData alloc] init];
|
|
||||||
imageData = [[NSMutableData alloc] init];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)shouldSendExMetric {
|
|
||||||
return NO; // since we are getting the ad from the AdWhirl server anyway, no
|
|
||||||
// need to send extra metric ping to the same server.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
@synchronized(self) {
|
|
||||||
if (requesting) return;
|
|
||||||
requesting = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSURL *adRequestBaseURL = nil;
|
|
||||||
if ([self.adWhirlDelegate respondsToSelector:@selector(adWhirlCustomAdURL)]) {
|
|
||||||
adRequestBaseURL = [self.adWhirlDelegate adWhirlCustomAdURL];
|
|
||||||
}
|
|
||||||
if (adRequestBaseURL == nil) {
|
|
||||||
adRequestBaseURL = [NSURL URLWithString:kAdWhirlDefaultCustomAdURL];
|
|
||||||
}
|
|
||||||
NSString *query;
|
|
||||||
if (self.adWhirlConfig.locationOn) {
|
|
||||||
AWLogDebug(@"Allow location access in custom ad");
|
|
||||||
CLLocation *location;
|
|
||||||
if ([self.adWhirlDelegate respondsToSelector:@selector(locationInfo)]) {
|
|
||||||
location = [self.adWhirlDelegate locationInfo];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
location = [self.locationManager location];
|
|
||||||
}
|
|
||||||
NSString *locationStr = [NSString stringWithFormat:@"%lf,%lf",
|
|
||||||
location.coordinate.latitude,
|
|
||||||
location.coordinate.longitude];
|
|
||||||
query = [NSString stringWithFormat:@"?appver=%d&country_code=%@&appid=%@&nid=%@&location=%@&location_timestamp=%lf&client=1",
|
|
||||||
kAdWhirlAppVer,
|
|
||||||
[[NSLocale currentLocale] localeIdentifier],
|
|
||||||
self.adWhirlConfig.appKey,
|
|
||||||
self.networkConfig.nid,
|
|
||||||
locationStr,
|
|
||||||
[[NSDate date] timeIntervalSince1970]];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogDebug(@"Do not allow location access in custom ad");
|
|
||||||
query = [NSString stringWithFormat:@"?appver=%d&country_code=%@&appid=%@&nid=%@&client=1",
|
|
||||||
kAdWhirlAppVer,
|
|
||||||
[[NSLocale currentLocale] localeIdentifier],
|
|
||||||
self.adWhirlConfig.appKey,
|
|
||||||
self.networkConfig.nid];
|
|
||||||
}
|
|
||||||
NSURL *adRequestURL = [NSURL URLWithString:query relativeToURL:adRequestBaseURL];
|
|
||||||
AWLogDebug(@"Requesting custom ad at %@", adRequestURL);
|
|
||||||
NSURLRequest *adRequest = [NSURLRequest requestWithURL:adRequestURL];
|
|
||||||
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:adRequest
|
|
||||||
delegate:self];
|
|
||||||
self.adConnection = conn;
|
|
||||||
[conn release];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
AdWhirlCustomAdView *theAdView = (AdWhirlCustomAdView *)self.adNetworkView;
|
|
||||||
if (theAdView != nil) {
|
|
||||||
theAdView.delegate = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[locationManager release], locationManager = nil;
|
|
||||||
[adConnection release], adConnection = nil;
|
|
||||||
[adData release], adData = nil;
|
|
||||||
[imageConnection release], imageConnection = nil;
|
|
||||||
[imageData release], imageData = nil;
|
|
||||||
[adView release], adView = nil;
|
|
||||||
[webBrowserController release], webBrowserController = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (CLLocationManager *)locationManager {
|
|
||||||
if (locationManager == nil) {
|
|
||||||
locationManager = [[CLLocationManager alloc] init];
|
|
||||||
}
|
|
||||||
return locationManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseEnums:(int *)val
|
|
||||||
adInfo:(NSDictionary*)info
|
|
||||||
minVal:(int)min
|
|
||||||
maxVal:(int)max
|
|
||||||
fieldName:(NSString *)name
|
|
||||||
error:(NSError **)error {
|
|
||||||
NSString *str = [info objectForKey:name];
|
|
||||||
if (str == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"Custom ad data has no '%@' field", name]];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
int intVal = [str intValue];
|
|
||||||
if (intVal <= min || intVal >= max) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"Custom ad: Invalid value for %@ - %d", name, intVal]];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
*val = intVal;
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseAdData:(NSData *)data error:(NSError **)error {
|
|
||||||
NSError *jsonError = nil;
|
|
||||||
id parsed = [[CJSONDeserializer deserializer] deserialize:data error:&jsonError];
|
|
||||||
if (parsed == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdParseError
|
|
||||||
description:@"Error parsing custom ad JSON from server"
|
|
||||||
underlyingError:jsonError];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ([parsed isKindOfClass:[NSDictionary class]]) {
|
|
||||||
NSDictionary *adInfo = parsed;
|
|
||||||
|
|
||||||
// gather up and validate ad info
|
|
||||||
NSString *text = [adInfo objectForKey:@"ad_text"];
|
|
||||||
NSString *redirectURLStr = [adInfo objectForKey:@"redirect_url"];
|
|
||||||
|
|
||||||
int adTypeInt;
|
|
||||||
if (![self parseEnums:&adTypeInt
|
|
||||||
adInfo:adInfo
|
|
||||||
minVal:AWCustomAdTypeMIN
|
|
||||||
maxVal:AWCustomAdTypeMAX
|
|
||||||
fieldName:@"ad_type"
|
|
||||||
error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
AWCustomAdType adType = adTypeInt;
|
|
||||||
|
|
||||||
int launchTypeInt;
|
|
||||||
if (![self parseEnums:&launchTypeInt
|
|
||||||
adInfo:adInfo
|
|
||||||
minVal:AWCustomAdLaunchTypeMIN
|
|
||||||
maxVal:AWCustomAdLaunchTypeMAX
|
|
||||||
fieldName:@"launch_type"
|
|
||||||
error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
AWCustomAdLaunchType launchType = launchTypeInt;
|
|
||||||
|
|
||||||
int animTypeInt;
|
|
||||||
if (![self parseEnums:&animTypeInt
|
|
||||||
adInfo:adInfo
|
|
||||||
minVal:AWCustomAdWebViewAnimTypeMIN
|
|
||||||
maxVal:AWCustomAdWebViewAnimTypeMAX
|
|
||||||
fieldName:@"webview_animation_type"
|
|
||||||
error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
AWCustomAdWebViewAnimType animType = animTypeInt;
|
|
||||||
|
|
||||||
NSURL *redirectURL = nil;
|
|
||||||
if (redirectURLStr == nil) {
|
|
||||||
AWLogWarn(@"No redirect URL for custom ad");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
redirectURL = [[NSURL alloc] initWithString:redirectURLStr];
|
|
||||||
if (!redirectURL)
|
|
||||||
AWLogWarn(@"Custom ad: Malformed redirect URL string %@", redirectURLStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
NSString *clickMetricsURLStr = [adInfo objectForKey:@"metrics_url"];
|
|
||||||
NSURL *clickMetricsURL = nil;
|
|
||||||
if (clickMetricsURLStr == nil) {
|
|
||||||
AWLogWarn(@"No click metric URL for custom ad");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
clickMetricsURL = [[NSURL alloc] initWithString:clickMetricsURLStr];
|
|
||||||
if (!clickMetricsURL)
|
|
||||||
AWLogWarn(@"Malformed click metrics URL string %@", clickMetricsURLStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
AWLogDebug(@"Got custom ad '%@' %@ %@ %d %d %d", text, redirectURL,
|
|
||||||
clickMetricsURL, adType, launchType, animType);
|
|
||||||
|
|
||||||
self.adView = [[AdWhirlCustomAdView alloc] initWithDelegate:self
|
|
||||||
text:text
|
|
||||||
redirectURL:redirectURL
|
|
||||||
clickMetricsURL:clickMetricsURL
|
|
||||||
adType:adType
|
|
||||||
launchType:launchType
|
|
||||||
animType:animType
|
|
||||||
backgroundColor:[self helperBackgroundColorToUse]
|
|
||||||
textColor:[self helperTextColorToUse]];
|
|
||||||
[self.adView release];
|
|
||||||
self.adNetworkView = adView;
|
|
||||||
[redirectURL release];
|
|
||||||
[clickMetricsURL release];
|
|
||||||
if (adView == nil) {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:@"Error initializing AdWhirl custom ad view"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// fetch image, set scale
|
|
||||||
self.scale = [[UIScreen mainScreen] respondsToSelector:@selector(scale)] ? [[UIScreen mainScreen] scale] : 1.0;
|
|
||||||
NSString *imageURL;
|
|
||||||
if (self.scale == 2.0 && adType == AWCustomAdTypeBanner) {
|
|
||||||
imageURL = [adInfo objectForKey:@"img_url_640x100"];
|
|
||||||
if (imageURL == nil || [imageURL length] == 0) {
|
|
||||||
self.scale = 1.0f;
|
|
||||||
imageURL = [adInfo objectForKey:@"img_url"];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
imageURL = [adInfo objectForKey:@"img_url"];
|
|
||||||
}
|
|
||||||
AWLogDebug(@"Request custom ad image at %@", imageURL);
|
|
||||||
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:imageURL]];
|
|
||||||
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:imageRequest
|
|
||||||
delegate:self];
|
|
||||||
self.imageConnection = conn;
|
|
||||||
[conn release];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (error != nil)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlCustomAdDataError
|
|
||||||
description:@"Expected top-level dictionary in custom ad data"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark NSURLConnection delegate methods.
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didReceiveResponse:(NSURLResponse *)response {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[adData setLength:0];
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
[imageData setLength:0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didFailWithError:(NSError *)error {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[self.adWhirlView adapter:self didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdConnectionError
|
|
||||||
description:@"Error connecting to custom ad server"
|
|
||||||
underlyingError:error]];
|
|
||||||
requesting = NO;
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
[self.adWhirlView adapter:self didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdConnectionError
|
|
||||||
description:@"Error connecting to custom ad server to fetch image"
|
|
||||||
underlyingError:error]];
|
|
||||||
requesting = NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connectionDidFinishLoading:(NSURLConnection *)conn {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
NSError *error = nil;
|
|
||||||
if (![self parseAdData:adData error:&error]) {
|
|
||||||
[self.adWhirlView adapter:self didFailAd:error];
|
|
||||||
requesting = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
UIImage *image = [[UIImage alloc] initWithData:imageData];
|
|
||||||
if (self.scale == 2.0) {
|
|
||||||
UIImage *img = [[UIImage alloc] initWithCGImage:image.CGImage scale:2.0 orientation:image.imageOrientation];
|
|
||||||
[image release];
|
|
||||||
image = img;
|
|
||||||
}
|
|
||||||
if (image == nil) {
|
|
||||||
[self.adWhirlView adapter:self didFailAd:[AdWhirlError errorWithCode:AdWhirlCustomAdImageError
|
|
||||||
description:@"Cannot initialize custom ad image from data"]];
|
|
||||||
requesting = NO;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
adView.image = image;
|
|
||||||
[adView setNeedsDisplay];
|
|
||||||
[image release];
|
|
||||||
requesting = NO;
|
|
||||||
[self.adWhirlView adapter:self didReceiveAdView:self.adView];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data {
|
|
||||||
if (conn == adConnection) {
|
|
||||||
[adData appendData:data];
|
|
||||||
}
|
|
||||||
else if (conn == imageConnection) {
|
|
||||||
[imageData appendData:data];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark AdWhirlCustomAdViewDelegate methods
|
|
||||||
|
|
||||||
- (void)adTapped:(AdWhirlCustomAdView *)ad {
|
|
||||||
if (ad != adView) return;
|
|
||||||
if (ad.clickMetricsURL != nil) {
|
|
||||||
NSURLRequest *metRequest = [NSURLRequest requestWithURL:ad.clickMetricsURL];
|
|
||||||
[NSURLConnection connectionWithRequest:metRequest
|
|
||||||
delegate:nil]; // fire and forget
|
|
||||||
AWLogDebug(@"Sent custom ad click ping to %@", ad.clickMetricsURL);
|
|
||||||
}
|
|
||||||
if (ad.redirectURL == nil) {
|
|
||||||
AWLogError(@"Custom ad redirect URL is nil");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch (ad.launchType) {
|
|
||||||
case AWCustomAdLaunchTypeSafari:
|
|
||||||
AWLogDebug(@"Opening URL '%@' for custom ad", ad.redirectURL);
|
|
||||||
if ([[UIApplication sharedApplication] openURL:ad.redirectURL] == NO) {
|
|
||||||
AWLogError(@"Cannot open URL '%@' for custom ad", ad.redirectURL);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case AWCustomAdLaunchTypeCanvas:
|
|
||||||
if (self.webBrowserController == nil) {
|
|
||||||
AdWhirlWebBrowserController *ctrlr = [[AdWhirlWebBrowserController alloc] init];
|
|
||||||
self.webBrowserController = ctrlr;
|
|
||||||
[ctrlr release];
|
|
||||||
}
|
|
||||||
webBrowserController.delegate = self;
|
|
||||||
[webBrowserController presentWithController:[self.adWhirlDelegate viewControllerForPresentingModalView]
|
|
||||||
transition:ad.animType];
|
|
||||||
[self helperNotifyDelegateOfFullScreenModal];
|
|
||||||
[webBrowserController loadURL:ad.redirectURL];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
AWLogError(@"Custom ad: Unsupported launch type %d", ad.launchType);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark AdWhirlWebBrowserControllerDelegate methods
|
|
||||||
|
|
||||||
- (void)webBrowserClosed:(AdWhirlWebBrowserController *)controller {
|
|
||||||
if (controller != webBrowserController) return;
|
|
||||||
self.webBrowserController = nil; // don't keep around to save memory
|
|
||||||
[self helperNotifyDelegateOfFullScreenModalDismissal];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterEvent.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterEvent : AdWhirlAdNetworkAdapter {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterEvent.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterEvent.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterEvent
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
NSArray *eventKeys = [networkConfig.pubId componentsSeparatedByString:@"|;|"];
|
|
||||||
NSString *eventSelectorStr = [eventKeys objectAtIndex:1];
|
|
||||||
SEL eventSelector = NSSelectorFromString(eventSelectorStr);
|
|
||||||
|
|
||||||
if ([adWhirlDelegate respondsToSelector:eventSelector]) {
|
|
||||||
[adWhirlDelegate performSelector:eventSelector];
|
|
||||||
[adWhirlView adapterDidFinishAdRequest:self];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
NSString *eventSelectorColonStr = [NSString stringWithFormat:@"%@:", eventSelectorStr];
|
|
||||||
SEL eventSelectorColon = NSSelectorFromString(eventSelectorColonStr);
|
|
||||||
if ([adWhirlDelegate respondsToSelector:eventSelectorColon]) {
|
|
||||||
[adWhirlDelegate performSelector:eventSelectorColon withObject:adWhirlView];
|
|
||||||
[adWhirlView adapterDidFinishAdRequest:self];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"Delegate does not implement function %@ nor %@", eventSelectorStr, eventSelectorColonStr);
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
// Nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGeneric.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
|
|
||||||
@interface AdWhirlAdapterGeneric : AdWhirlAdNetworkAdapter {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlAdapterGeneric.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdapterGeneric.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter+Helpers.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlAdapterGeneric
|
|
||||||
|
|
||||||
+ (AdWhirlAdNetworkType)networkType {
|
|
||||||
return AdWhirlAdNetworkTypeGeneric;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)load {
|
|
||||||
[[AdWhirlAdNetworkRegistry sharedRegistry] registerClass:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)getAd {
|
|
||||||
if ([adWhirlDelegate respondsToSelector:@selector(adWhirlReceivedRequestForDeveloperToFufill:)]) {
|
|
||||||
[adWhirlDelegate adWhirlReceivedRequestForDeveloperToFufill:adWhirlView];
|
|
||||||
[adWhirlView adapterDidFinishAdRequest:self];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"Delegate does not implement adWhirlReceivedRequestForDeveloperToFufill");
|
|
||||||
[adWhirlView adapter:self didFailAd:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)stopBeingDelegate {
|
|
||||||
// nothing to do
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlClassWrapper.h
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface AdWhirlClassWrapper : NSObject {
|
|
||||||
Class theClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithClass:(Class)c;
|
|
||||||
|
|
||||||
@property (nonatomic, readonly) Class theClass;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlClassWrapper.m
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlClassWrapper.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlClassWrapper
|
|
||||||
|
|
||||||
@synthesize theClass;
|
|
||||||
|
|
||||||
- (id)initWithClass:(Class)c {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
theClass = c;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlConfig.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "CJSONDeserializer.h"
|
|
||||||
|
|
||||||
@class AdWhirlConfig;
|
|
||||||
@protocol AdWhirlConfigDelegate<NSObject>
|
|
||||||
|
|
||||||
@optional
|
|
||||||
- (void)adWhirlConfigDidReceiveConfig:(AdWhirlConfig *)config;
|
|
||||||
- (void)adWhirlConfigDidFail:(AdWhirlConfig *)config error:(NSError *)error;
|
|
||||||
- (NSURL *)adWhirlConfigURL;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AWBannerAnimationTypeNone = 0,
|
|
||||||
AWBannerAnimationTypeFlipFromLeft = 1,
|
|
||||||
AWBannerAnimationTypeFlipFromRight = 2,
|
|
||||||
AWBannerAnimationTypeCurlUp = 3,
|
|
||||||
AWBannerAnimationTypeCurlDown = 4,
|
|
||||||
AWBannerAnimationTypeSlideFromLeft = 5,
|
|
||||||
AWBannerAnimationTypeSlideFromRight = 6,
|
|
||||||
AWBannerAnimationTypeFadeIn = 7,
|
|
||||||
AWBannerAnimationTypeRandom = 8,
|
|
||||||
} AWBannerAnimationType;
|
|
||||||
|
|
||||||
@class AdWhirlAdNetworkConfig;
|
|
||||||
@class AdWhirlAdNetworkRegistry;
|
|
||||||
|
|
||||||
@interface AdWhirlConfig : NSObject {
|
|
||||||
NSString *appKey;
|
|
||||||
NSURL *configURL;
|
|
||||||
BOOL legacy;
|
|
||||||
|
|
||||||
BOOL adsAreOff;
|
|
||||||
NSMutableArray *adNetworkConfigs;
|
|
||||||
|
|
||||||
UIColor *backgroundColor;
|
|
||||||
UIColor *textColor;
|
|
||||||
NSTimeInterval refreshInterval;
|
|
||||||
BOOL locationOn;
|
|
||||||
AWBannerAnimationType bannerAnimationType;
|
|
||||||
NSInteger fullscreenWaitInterval;
|
|
||||||
NSInteger fullscreenMaxAds;
|
|
||||||
|
|
||||||
NSMutableArray *delegates;
|
|
||||||
BOOL hasConfig;
|
|
||||||
|
|
||||||
AdWhirlAdNetworkRegistry *adNetworkRegistry;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithAppKey:(NSString *)ak delegate:(id<AdWhirlConfigDelegate>)delegate;
|
|
||||||
- (BOOL)parseConfig:(NSData *)data error:(NSError **)error;
|
|
||||||
- (BOOL)addDelegate:(id<AdWhirlConfigDelegate>)delegate;
|
|
||||||
- (BOOL)removeDelegate:(id<AdWhirlConfigDelegate>)delegate;
|
|
||||||
- (void)notifyDelegatesOfFailure:(NSError *)error;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) NSString *appKey;
|
|
||||||
@property (nonatomic,readonly) NSURL *configURL;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) BOOL hasConfig;
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) BOOL adsAreOff;
|
|
||||||
@property (nonatomic,readonly) NSArray *adNetworkConfigs;
|
|
||||||
@property (nonatomic,readonly) UIColor *backgroundColor;
|
|
||||||
@property (nonatomic,readonly) UIColor *textColor;
|
|
||||||
@property (nonatomic,readonly) NSTimeInterval refreshInterval;
|
|
||||||
@property (nonatomic,readonly) BOOL locationOn;
|
|
||||||
@property (nonatomic,readonly) AWBannerAnimationType bannerAnimationType;
|
|
||||||
@property (nonatomic,readonly) NSInteger fullscreenWaitInterval;
|
|
||||||
@property (nonatomic,readonly) NSInteger fullscreenMaxAds;
|
|
||||||
|
|
||||||
@property (nonatomic,assign) AdWhirlAdNetworkRegistry *adNetworkRegistry;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
// Convenience conversion functions, converts val into native types var.
|
|
||||||
// val can be NSNumber or NSString, all else will cause function to fail
|
|
||||||
// On failure, return NO.
|
|
||||||
BOOL awIntVal(NSInteger *var, id val);
|
|
||||||
BOOL awFloatVal(CGFloat *var, id val);
|
|
||||||
BOOL awDoubleVal(double *var, id val);
|
|
||||||
@@ -1,563 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlConfig.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <CommonCrypto/CommonDigest.h>
|
|
||||||
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
#import "AdWhirlAdNetworkConfig.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
#import "AdWhirlAdNetworkRegistry.h"
|
|
||||||
#import "UIColor+AdWhirlConfig.h"
|
|
||||||
#import "AWNetworkReachabilityWrapper.h"
|
|
||||||
|
|
||||||
|
|
||||||
BOOL awIntVal(NSInteger *var, id val) {
|
|
||||||
if ([val isKindOfClass:[NSNumber class]] || [val isKindOfClass:[NSString class]]) {
|
|
||||||
*var = [val integerValue];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL awFloatVal(CGFloat *var, id val) {
|
|
||||||
if ([val isKindOfClass:[NSNumber class]] || [val isKindOfClass:[NSString class]]) {
|
|
||||||
*var = [val floatValue];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL awDoubleVal(double *var, id val) {
|
|
||||||
if ([val isKindOfClass:[NSNumber class]] || [val isKindOfClass:[NSString class]]) {
|
|
||||||
*var = [val doubleValue];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlConfig
|
|
||||||
|
|
||||||
@synthesize appKey;
|
|
||||||
@synthesize configURL;
|
|
||||||
@synthesize adsAreOff;
|
|
||||||
@synthesize adNetworkConfigs;
|
|
||||||
@synthesize backgroundColor;
|
|
||||||
@synthesize textColor;
|
|
||||||
@synthesize refreshInterval;
|
|
||||||
@synthesize locationOn;
|
|
||||||
@synthesize bannerAnimationType;
|
|
||||||
@synthesize fullscreenWaitInterval;
|
|
||||||
@synthesize fullscreenMaxAds;
|
|
||||||
@synthesize hasConfig;
|
|
||||||
|
|
||||||
@synthesize adNetworkRegistry;
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
|
|
||||||
- (id)initWithAppKey:(NSString *)ak delegate:(id<AdWhirlConfigDelegate>)delegate {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
appKey = [[NSString alloc] initWithString:ak];
|
|
||||||
legacy = NO;
|
|
||||||
adNetworkConfigs = [[NSMutableArray alloc] init];
|
|
||||||
delegates = [[NSMutableArray alloc] init];
|
|
||||||
hasConfig = NO;
|
|
||||||
[self addDelegate:delegate];
|
|
||||||
|
|
||||||
// object dependencies
|
|
||||||
adNetworkRegistry = [AdWhirlAdNetworkRegistry sharedRegistry];
|
|
||||||
|
|
||||||
// default values
|
|
||||||
backgroundColor = [[UIColor alloc] initWithRed:0.3 green:0.3 blue:0.3 alpha:1.0];
|
|
||||||
textColor = [[UIColor whiteColor] retain];
|
|
||||||
refreshInterval = 60;
|
|
||||||
locationOn = YES;
|
|
||||||
bannerAnimationType = AWBannerAnimationTypeRandom;
|
|
||||||
fullscreenWaitInterval = 60;
|
|
||||||
fullscreenMaxAds = 2;
|
|
||||||
|
|
||||||
// config URL
|
|
||||||
NSURL *configBaseURL = nil;
|
|
||||||
if ([delegate respondsToSelector:@selector(adWhirlConfigURL)]) {
|
|
||||||
configBaseURL = [delegate adWhirlConfigURL];
|
|
||||||
}
|
|
||||||
if (configBaseURL == nil) {
|
|
||||||
configBaseURL = [NSURL URLWithString:kAdWhirlDefaultConfigURL];
|
|
||||||
}
|
|
||||||
configURL = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"?appid=%@&appver=%d&client=1",
|
|
||||||
appKey,
|
|
||||||
kAdWhirlAppVer]
|
|
||||||
relativeToURL:configBaseURL];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)addDelegate:(id<AdWhirlConfigDelegate>)delegate {
|
|
||||||
for (NSValue *w in delegates) {
|
|
||||||
id<AdWhirlConfigDelegate> existing = [w nonretainedObjectValue];
|
|
||||||
if (existing == delegate) {
|
|
||||||
return NO; // already in the list of delegates
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NSValue *wrapped = [NSValue valueWithNonretainedObject:delegate];
|
|
||||||
[delegates addObject:wrapped];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)removeDelegate:(id<AdWhirlConfigDelegate>)delegate {
|
|
||||||
NSUInteger i;
|
|
||||||
for (i = 0; i < [delegates count]; i++) {
|
|
||||||
NSValue *w = [delegates objectAtIndex:i];
|
|
||||||
id<AdWhirlConfigDelegate> existing = [w nonretainedObjectValue];
|
|
||||||
if (existing == delegate) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i < [delegates count]) {
|
|
||||||
[delegates removeObjectAtIndex:i];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)notifyDelegatesOfFailure:(NSError *)error {
|
|
||||||
for (NSValue *wrapped in delegates) {
|
|
||||||
id<AdWhirlConfigDelegate> delegate = [wrapped nonretainedObjectValue];
|
|
||||||
if ([delegate respondsToSelector:@selector(adWhirlConfigDidFail:error:)]) {
|
|
||||||
[delegate adWhirlConfigDidFail:self error:error];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)description {
|
|
||||||
NSString *desc = [super description];
|
|
||||||
NSString *configs = [NSString stringWithFormat:
|
|
||||||
@"location_access:%d fg_color:%@ bg_color:%@ cycle_time:%lf transition:%d",
|
|
||||||
locationOn, textColor, backgroundColor, refreshInterval, bannerAnimationType];
|
|
||||||
return [NSString stringWithFormat:@"%@:\n%@ networks:%@",desc,configs,adNetworkConfigs];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[appKey release], appKey = nil;
|
|
||||||
[configURL release], configURL = nil;
|
|
||||||
[adNetworkConfigs release], adNetworkConfigs = nil;
|
|
||||||
[backgroundColor release], backgroundColor = nil;
|
|
||||||
[textColor release], textColor = nil;
|
|
||||||
[delegates release], delegates = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark parsing methods
|
|
||||||
|
|
||||||
- (BOOL)parseExtraConfig:(NSDictionary *)configDict error:(NSError **)error {
|
|
||||||
id bgColor = [configDict objectForKey:@"background_color_rgb"];
|
|
||||||
if (bgColor != nil && [bgColor isKindOfClass:[NSDictionary class]]) {
|
|
||||||
[backgroundColor release];
|
|
||||||
backgroundColor = [[UIColor alloc] initWithDict:(NSDictionary *)bgColor];
|
|
||||||
}
|
|
||||||
id txtColor = [configDict objectForKey:@"text_color_rgb"];
|
|
||||||
if (txtColor != nil && [txtColor isKindOfClass:[NSDictionary class]]) {
|
|
||||||
[textColor release];
|
|
||||||
textColor = [[UIColor alloc] initWithDict:txtColor];
|
|
||||||
}
|
|
||||||
id tempVal;
|
|
||||||
tempVal = [configDict objectForKey:@"refresh_interval"];
|
|
||||||
if (tempVal == nil)
|
|
||||||
tempVal = [configDict objectForKey:@"cycle_time"];
|
|
||||||
NSInteger tempInt;
|
|
||||||
if (tempVal && awIntVal(&tempInt, tempVal)) {
|
|
||||||
refreshInterval = (NSTimeInterval)tempInt;
|
|
||||||
if (refreshInterval >= 30000.0) {
|
|
||||||
// effectively forever, set to 0
|
|
||||||
refreshInterval = 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (awIntVal(&tempInt, [configDict objectForKey:@"location_on"])) {
|
|
||||||
locationOn = (tempInt == 0)? NO : YES;
|
|
||||||
// check user preference. user preference of NO trumps all
|
|
||||||
|
|
||||||
BOOL bLocationServiceEnabled = NO;
|
|
||||||
if ([CLLocationManager respondsToSelector:
|
|
||||||
@selector(locationServicesEnabled)]) {
|
|
||||||
bLocationServiceEnabled = [CLLocationManager locationServicesEnabled];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
CLLocationManager* locMan = [[CLLocationManager alloc] init];
|
|
||||||
bLocationServiceEnabled = locMan.locationServicesEnabled;
|
|
||||||
[locMan release], locMan = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (locationOn == YES && bLocationServiceEnabled == NO) {
|
|
||||||
AWLogDebug(@"User disabled location services, set locationOn to NO");
|
|
||||||
locationOn = NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tempVal = [configDict objectForKey:@"transition"];
|
|
||||||
if (tempVal == nil)
|
|
||||||
tempVal = [configDict objectForKey:@"banner_animation_type"];
|
|
||||||
if (tempVal && awIntVal(&tempInt, tempVal)) {
|
|
||||||
switch (tempInt) {
|
|
||||||
case 0: bannerAnimationType = AWBannerAnimationTypeNone; break;
|
|
||||||
case 1: bannerAnimationType = AWBannerAnimationTypeFlipFromLeft; break;
|
|
||||||
case 2: bannerAnimationType = AWBannerAnimationTypeFlipFromRight; break;
|
|
||||||
case 3: bannerAnimationType = AWBannerAnimationTypeCurlUp; break;
|
|
||||||
case 4: bannerAnimationType = AWBannerAnimationTypeCurlDown; break;
|
|
||||||
case 5: bannerAnimationType = AWBannerAnimationTypeSlideFromLeft; break;
|
|
||||||
case 6: bannerAnimationType = AWBannerAnimationTypeSlideFromRight; break;
|
|
||||||
case 7: bannerAnimationType = AWBannerAnimationTypeFadeIn; break;
|
|
||||||
case 8: bannerAnimationType = AWBannerAnimationTypeRandom; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (awIntVal(&tempInt, [configDict objectForKey:@"fullscreen_wait_interval"])) {
|
|
||||||
fullscreenWaitInterval = tempInt;
|
|
||||||
}
|
|
||||||
if (awIntVal(&tempInt, [configDict objectForKey:@"fullscreen_max_ads"])) {
|
|
||||||
fullscreenMaxAds = tempInt;
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseLegacyConfig:(NSArray *)configArray error:(NSError **)error {
|
|
||||||
NSMutableDictionary *adNetConfigDicts = [[NSMutableDictionary alloc] init];
|
|
||||||
for (int i = 0; i < [configArray count]; i++) {
|
|
||||||
id configObj = [configArray objectAtIndex:i];
|
|
||||||
if (![configObj isKindOfClass:[NSDictionary class]]) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:@"Expected dictionary in config data"];
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
NSDictionary *configDict = (NSDictionary *)configObj;
|
|
||||||
switch (i) {
|
|
||||||
case 0:
|
|
||||||
// ration map
|
|
||||||
case 1:
|
|
||||||
// key map
|
|
||||||
case 2:
|
|
||||||
// priority map
|
|
||||||
for (id key in [configDict keyEnumerator]) {
|
|
||||||
// format: "<network name>_<value name>" e.g. "admob_ration"
|
|
||||||
NSString *strKey = (NSString *)key;
|
|
||||||
if ([strKey compare:@"empty_ration"] == NSOrderedSame) {
|
|
||||||
NSInteger empty_ration;
|
|
||||||
if (awIntVal(&empty_ration, [configDict objectForKey:key]) && empty_ration == 100) {
|
|
||||||
adsAreOff = YES;
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
adsAreOff = NO;
|
|
||||||
NSRange underScorePos = [strKey rangeOfString:@"_" options:NSBackwardsSearch];
|
|
||||||
if (underScorePos.location == NSNotFound) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"Expected underscore delimiter in key '%@'", strKey]];
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
NSString *networkName = [strKey substringToIndex:underScorePos.location];
|
|
||||||
NSString *valueName = [strKey substringFromIndex:(underScorePos.location+1)];
|
|
||||||
if ([networkName length] == 0) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"Empty ad network name in key '%@'", strKey]];
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ([valueName length] == 0) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:[NSString stringWithFormat:
|
|
||||||
@"Empty value name in key '%@'", strKey]];
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ([networkName compare:@"dontcare"] == NSOrderedSame) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
NSMutableDictionary *adNetConfigDict = [adNetConfigDicts objectForKey:networkName];
|
|
||||||
if (adNetConfigDict == nil) {
|
|
||||||
adNetConfigDict = [[NSMutableDictionary alloc] init];
|
|
||||||
[adNetConfigDicts setObject:adNetConfigDict forKey:networkName];
|
|
||||||
[adNetConfigDict release];
|
|
||||||
adNetConfigDict = [adNetConfigDicts objectForKey:networkName];
|
|
||||||
}
|
|
||||||
NSString *properValueName;
|
|
||||||
if ([valueName compare:@"ration"] == NSOrderedSame) {
|
|
||||||
properValueName = AWAdNetworkConfigKeyWeight;
|
|
||||||
}
|
|
||||||
else if ([valueName compare:@"key"] == NSOrderedSame) {
|
|
||||||
properValueName = AWAdNetworkConfigKeyCred;
|
|
||||||
}
|
|
||||||
else if ([valueName compare:@"priority"] == NSOrderedSame) {
|
|
||||||
properValueName = AWAdNetworkConfigKeyPriority;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
properValueName = valueName;
|
|
||||||
}
|
|
||||||
[adNetConfigDict setObject:[configDict objectForKey:key]
|
|
||||||
forKey:properValueName];
|
|
||||||
}
|
|
||||||
break; // ad network config maps
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
// general config map
|
|
||||||
if (![self parseExtraConfig:configDict error:error]) {
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
break; // general config map
|
|
||||||
default:
|
|
||||||
AWLogWarn(@"Ignoring element at index %d in legacy config", i);
|
|
||||||
break;
|
|
||||||
} // switch (i)
|
|
||||||
} // loop configArray
|
|
||||||
|
|
||||||
// adwhirl_ special handling
|
|
||||||
NSMutableDictionary *adRolloConfig = [adNetConfigDicts objectForKey:@"adrollo"];
|
|
||||||
if (adRolloConfig != nil) {
|
|
||||||
AWLogDebug(@"Processing AdRollo config %@", adRolloConfig);
|
|
||||||
NSMutableArray *adWhirlNetworkConfigs = [[NSMutableArray alloc] init];;
|
|
||||||
for (NSString *netname in [adNetConfigDicts keyEnumerator]) {
|
|
||||||
if (![netname hasPrefix:@"adwhirl_"]) continue;
|
|
||||||
[adWhirlNetworkConfigs addObject:[adNetConfigDicts objectForKey:netname]];
|
|
||||||
}
|
|
||||||
if ([adWhirlNetworkConfigs count] > 0) {
|
|
||||||
// split the ration evenly, use same credentials
|
|
||||||
NSInteger ration = [[adRolloConfig objectForKey:AWAdNetworkConfigKeyWeight] integerValue];
|
|
||||||
ration = ration/[adWhirlNetworkConfigs count];
|
|
||||||
for (NSMutableDictionary *cd in adWhirlNetworkConfigs) {
|
|
||||||
[cd setObject:[NSNumber numberWithInteger:ration]
|
|
||||||
forKey:AWAdNetworkConfigKeyWeight];
|
|
||||||
[cd setObject:[adRolloConfig objectForKey:AWAdNetworkConfigKeyCred]
|
|
||||||
forKey:AWAdNetworkConfigKeyCred];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[adWhirlNetworkConfigs release];
|
|
||||||
}
|
|
||||||
|
|
||||||
NSInteger totalWeight = 0;
|
|
||||||
for (id networkName in [adNetConfigDicts keyEnumerator]) {
|
|
||||||
NSString *netname = (NSString *)networkName;
|
|
||||||
if ([netname compare:@"adrollo"] == NSOrderedSame) {
|
|
||||||
// skip adrollo, was used for "adwhirl_" networks
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
NSMutableDictionary *adNetConfigDict = [adNetConfigDicts objectForKey:netname];
|
|
||||||
|
|
||||||
// set network type for legacy
|
|
||||||
NSInteger networkType = 0;
|
|
||||||
if ([netname compare:@"admob"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeAdMob;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"jumptap"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeJumpTap;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"videoegg"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeVideoEgg;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"medialets"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeMedialets;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"liverail"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeLiveRail;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"millennial"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeMillennial;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"greystripe"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeGreyStripe;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"quattro"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeQuattro;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"custom"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeCustom;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"adwhirl_10"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeAdWhirl10;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"mobclix"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeMobClix;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"adwhirl_12"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeMdotM;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"adwhirl_13"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeAdWhirl13;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"google_adsense"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeGoogleAdSense;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"google_doubleclick"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeGoogleDoubleClick;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"generic"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeGeneric;
|
|
||||||
}
|
|
||||||
else if ([netname compare:@"inmobi"] == NSOrderedSame) {
|
|
||||||
networkType = AdWhirlAdNetworkTypeInMobi;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"Unrecognized ad network '%@' in legacy config, ignored", netname);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
[adNetConfigDict setObject:netname forKey:AWAdNetworkConfigKeyName];
|
|
||||||
[adNetConfigDict setObject:[NSString stringWithFormat:@"%d", networkType]
|
|
||||||
forKey:AWAdNetworkConfigKeyNID];
|
|
||||||
[adNetConfigDict setObject:[NSNumber numberWithInteger:networkType]
|
|
||||||
forKey:AWAdNetworkConfigKeyType];
|
|
||||||
|
|
||||||
AdWhirlError *adNetConfigError = nil;
|
|
||||||
AdWhirlAdNetworkConfig *adNetConfig =
|
|
||||||
[[AdWhirlAdNetworkConfig alloc] initWithDictionary:adNetConfigDict
|
|
||||||
adNetworkRegistry:adNetworkRegistry
|
|
||||||
error:&adNetConfigError];
|
|
||||||
if (adNetConfig != nil) {
|
|
||||||
[adNetworkConfigs addObject:adNetConfig];
|
|
||||||
totalWeight += adNetConfig.trafficPercentage;
|
|
||||||
[adNetConfig release];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"Cannot create ad network config from %@: %@", adNetConfigDict,
|
|
||||||
adNetConfigError != nil? [adNetConfigError localizedDescription]:@"");
|
|
||||||
}
|
|
||||||
} // for each ad network name
|
|
||||||
|
|
||||||
if (totalWeight == 0) {
|
|
||||||
adsAreOff = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
[adNetConfigDicts release];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseNewConfig:(NSDictionary *)configDict error:(NSError **)error {
|
|
||||||
id extra = [configDict objectForKey:@"extra"];
|
|
||||||
if (extra != nil && [extra isKindOfClass:[NSDictionary class]]) {
|
|
||||||
NSDictionary *extraDict = extra;
|
|
||||||
if (![self parseExtraConfig:extraDict error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"No extra info dict in ad network config");
|
|
||||||
}
|
|
||||||
|
|
||||||
id rations = [configDict objectForKey:@"rations"];
|
|
||||||
double totalWeight = 0.0;
|
|
||||||
if (rations != nil && [rations isKindOfClass:[NSArray class]]) {
|
|
||||||
if ([(NSArray *)rations count] == 0) {
|
|
||||||
adsAreOff = YES;
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
adsAreOff = NO;
|
|
||||||
for (id c in (NSArray *)rations) {
|
|
||||||
if (![c isKindOfClass:[NSDictionary class]]) {
|
|
||||||
AWLogWarn(@"Element in rations array is not a dictionary %@ in ad network config",c);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
AdWhirlError *adNetConfigError = nil;
|
|
||||||
AdWhirlAdNetworkConfig *adNetConfig =
|
|
||||||
[[AdWhirlAdNetworkConfig alloc] initWithDictionary:(NSDictionary *)c
|
|
||||||
adNetworkRegistry:adNetworkRegistry
|
|
||||||
error:&adNetConfigError];
|
|
||||||
if (adNetConfig != nil) {
|
|
||||||
[adNetworkConfigs addObject:adNetConfig];
|
|
||||||
totalWeight += adNetConfig.trafficPercentage;
|
|
||||||
[adNetConfig release];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogWarn(@"Cannot create ad network config from %@: %@", c,
|
|
||||||
adNetConfigError != nil? [adNetConfigError localizedDescription]:@"");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
AWLogError(@"No rations array in ad network config");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (totalWeight == 0.0) {
|
|
||||||
adsAreOff = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)parseConfig:(NSData *)data error:(NSError **)error {
|
|
||||||
if (hasConfig) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:@"Already has config, will not parse"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
NSError *jsonError = nil;
|
|
||||||
id parsed = [[CJSONDeserializer deserializer] deserialize:data error:&jsonError];
|
|
||||||
if (parsed == nil) {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigParseError
|
|
||||||
description:@"Error parsing config JSON from server"
|
|
||||||
underlyingError:jsonError];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
if ([parsed isKindOfClass:[NSArray class]]) {
|
|
||||||
// pre-open-source AdWhirl/AdRollo config
|
|
||||||
legacy = YES;
|
|
||||||
if (![self parseLegacyConfig:(NSArray *)parsed error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ([parsed isKindOfClass:[NSDictionary class]]) {
|
|
||||||
// open-source AdWhirl config
|
|
||||||
if (![self parseNewConfig:(NSDictionary *)parsed error:error]) {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (error != NULL)
|
|
||||||
*error = [AdWhirlError errorWithCode:AdWhirlConfigDataError
|
|
||||||
description:@"Expected top-level dictionary in config data"];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse success
|
|
||||||
hasConfig = YES;
|
|
||||||
|
|
||||||
// notify delegates of success
|
|
||||||
for (NSValue *wrapped in delegates) {
|
|
||||||
id<AdWhirlConfigDelegate> delegate = [wrapped nonretainedObjectValue];
|
|
||||||
if ([delegate respondsToSelector:@selector(adWhirlConfigDidReceiveConfig:)]) {
|
|
||||||
[delegate adWhirlConfigDidReceiveConfig:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlConfigStore.h
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "AdWhirlConfigStore.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
#import "AWNetworkReachabilityDelegate.h"
|
|
||||||
|
|
||||||
@class AWNetworkReachabilityWrapper;
|
|
||||||
|
|
||||||
// Singleton class to store AdWhirl configs, keyed by appKey. Fetched config
|
|
||||||
// is cached unless it is force-fetched using fetchConfig. Checks network
|
|
||||||
// reachability using AWNetworkReachabilityWrapper before making connections to
|
|
||||||
// fetch configs, so that that means it will wait forever until the config host
|
|
||||||
// is reachable.
|
|
||||||
@interface AdWhirlConfigStore : NSObject <AWNetworkReachabilityDelegate> {
|
|
||||||
NSMutableDictionary *configs_;
|
|
||||||
AdWhirlConfig *fetchingConfig_;
|
|
||||||
|
|
||||||
AWNetworkReachabilityWrapper *reachability_;
|
|
||||||
NSURLConnection *connection_;
|
|
||||||
NSMutableData *receivedData_;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns the singleton AdWhirlConfigStore object.
|
|
||||||
+ (AdWhirlConfigStore *)sharedStore;
|
|
||||||
|
|
||||||
// Deletes all existing configs.
|
|
||||||
+ (void)resetStore;
|
|
||||||
|
|
||||||
// Returns config for appKey. If config does not exist for appKey, goes and
|
|
||||||
// fetches the config from the server, the URL of which is taken from
|
|
||||||
// [delegate adWhirlConfigURL].
|
|
||||||
// Returns nil if appKey is nil or empty, another fetch is in progress, or
|
|
||||||
// error setting up reachability check.
|
|
||||||
- (AdWhirlConfig *)getConfig:(NSString *)appKey
|
|
||||||
delegate:(id<AdWhirlConfigDelegate>)delegate;
|
|
||||||
|
|
||||||
// Fetches (or re-fetch) the config for the given appKey. Always go to the
|
|
||||||
// network. Call this to get a new version of the config from the server.
|
|
||||||
// Returns nil if appKey is nil or empty, another fetch is in progress, or
|
|
||||||
// error setting up reachability check.
|
|
||||||
- (AdWhirlConfig *)fetchConfig:(NSString *)appKey
|
|
||||||
delegate:(id <AdWhirlConfigDelegate>)delegate;
|
|
||||||
|
|
||||||
// For testing -- set mocks here.
|
|
||||||
@property (nonatomic,retain) AWNetworkReachabilityWrapper *reachability;
|
|
||||||
@property (nonatomic,retain) NSURLConnection *connection;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,291 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlConfigStore.m
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlConfigStore.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
#import "AWNetworkReachabilityWrapper.h"
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
|
|
||||||
static AdWhirlConfigStore *gStore = nil;
|
|
||||||
|
|
||||||
@interface AdWhirlConfigStore ()
|
|
||||||
|
|
||||||
- (BOOL)checkReachability;
|
|
||||||
- (void)startFetchingAssumingReachable;
|
|
||||||
- (void)failedFetchingWithError:(AdWhirlError *)error;
|
|
||||||
- (void)finishedFetching;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlConfigStore
|
|
||||||
|
|
||||||
@synthesize reachability = reachability_;
|
|
||||||
@synthesize connection = connection_;
|
|
||||||
|
|
||||||
+ (AdWhirlConfigStore *)sharedStore {
|
|
||||||
if (gStore == nil) {
|
|
||||||
gStore = [[AdWhirlConfigStore alloc] init];
|
|
||||||
}
|
|
||||||
return gStore;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)resetStore {
|
|
||||||
if (gStore != nil) {
|
|
||||||
[gStore release], gStore = nil;
|
|
||||||
[self sharedStore];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
self = [super init];
|
|
||||||
if (self != nil) {
|
|
||||||
configs_ = [[NSMutableDictionary alloc] init];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (AdWhirlConfig *)getConfig:(NSString *)appKey
|
|
||||||
delegate:(id<AdWhirlConfigDelegate>)delegate {
|
|
||||||
AdWhirlConfig *config = [configs_ objectForKey:appKey];
|
|
||||||
if (config != nil) {
|
|
||||||
if (config.hasConfig) {
|
|
||||||
if ([delegate
|
|
||||||
respondsToSelector:@selector(adWhirlConfigDidReceiveConfig:)]) {
|
|
||||||
// Don't call directly, instead schedule it in the runloop. Delegate
|
|
||||||
// may expect the message to be delivered out-of-band
|
|
||||||
[(NSObject *)delegate
|
|
||||||
performSelectorOnMainThread:@selector(adWhirlConfigDidReceiveConfig:)
|
|
||||||
withObject:config
|
|
||||||
waitUntilDone:NO];
|
|
||||||
}
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
// If there's already a config fetching, and another call to this function
|
|
||||||
// add a delegate to the config
|
|
||||||
[config addDelegate:delegate];
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
// No config, create one, and start fetching it
|
|
||||||
return [self fetchConfig:appKey delegate:delegate];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (AdWhirlConfig *)fetchConfig:(NSString *)appKey
|
|
||||||
delegate:(id <AdWhirlConfigDelegate>)delegate {
|
|
||||||
|
|
||||||
AdWhirlConfig *config = [[AdWhirlConfig alloc] initWithAppKey:appKey
|
|
||||||
delegate:delegate];
|
|
||||||
|
|
||||||
if (fetchingConfig_ != nil) {
|
|
||||||
AWLogWarn(@"Another fetch is in progress, wait until finished.");
|
|
||||||
[config release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
fetchingConfig_ = config;
|
|
||||||
|
|
||||||
if (![self checkReachability]) {
|
|
||||||
[config release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
[configs_ setObject:config forKey:appKey];
|
|
||||||
[config release];
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
if (reachability_ != nil) {
|
|
||||||
reachability_.delegate = nil;
|
|
||||||
[reachability_ release];
|
|
||||||
}
|
|
||||||
[connection_ release];
|
|
||||||
[receivedData_ release];
|
|
||||||
[configs_ release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark private helper methods
|
|
||||||
|
|
||||||
// Check reachability first
|
|
||||||
- (BOOL)checkReachability {
|
|
||||||
AWLogDebug(@"Checking if config is reachable at %@",
|
|
||||||
fetchingConfig_.configURL);
|
|
||||||
|
|
||||||
// Normally reachability_ should be nil so a new one will be created.
|
|
||||||
// In a testing environment, it may already have been assigned with a mock.
|
|
||||||
// In any case, reachability_ will be released when the config URL is
|
|
||||||
// reachable, in -reachabilityBecameReachable.
|
|
||||||
if (reachability_ == nil) {
|
|
||||||
reachability_ = [AWNetworkReachabilityWrapper
|
|
||||||
reachabilityWithHostname:[fetchingConfig_.configURL host]
|
|
||||||
callbackDelegate:self];
|
|
||||||
[reachability_ retain];
|
|
||||||
}
|
|
||||||
if (reachability_ == nil) {
|
|
||||||
[fetchingConfig_ notifyDelegatesOfFailure:
|
|
||||||
[AdWhirlError errorWithCode:AdWhirlConfigConnectionError
|
|
||||||
description:
|
|
||||||
@"Error setting up reachability check to config server"]];
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (![reachability_ scheduleInCurrentRunLoop]) {
|
|
||||||
[fetchingConfig_ notifyDelegatesOfFailure:
|
|
||||||
[AdWhirlError errorWithCode:AdWhirlConfigConnectionError
|
|
||||||
description:
|
|
||||||
@"Error scheduling reachability check to config server"]];
|
|
||||||
[reachability_ release], reachability_ = nil;
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make connection
|
|
||||||
- (void)startFetchingAssumingReachable {
|
|
||||||
// go fetch config
|
|
||||||
NSURLRequest *configRequest
|
|
||||||
= [NSURLRequest requestWithURL:fetchingConfig_.configURL];
|
|
||||||
|
|
||||||
// Normally connection_ should be nil so a new one will be created.
|
|
||||||
// In a testing environment, it may alreay have been assigned with a mock.
|
|
||||||
// In any case, connection_ will be release when connection failed or
|
|
||||||
// finished.
|
|
||||||
if (connection_ == nil) {
|
|
||||||
connection_ = [[NSURLConnection alloc] initWithRequest:configRequest
|
|
||||||
delegate:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error checking
|
|
||||||
if (connection_ == nil) {
|
|
||||||
[self failedFetchingWithError:
|
|
||||||
[AdWhirlError errorWithCode:AdWhirlConfigConnectionError
|
|
||||||
description:
|
|
||||||
@"Error creating connection to config server"]];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
receivedData_ = [[NSMutableData alloc] init];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clean up after fetching failed
|
|
||||||
- (void)failedFetchingWithError:(AdWhirlError *)error {
|
|
||||||
// notify
|
|
||||||
[fetchingConfig_ notifyDelegatesOfFailure:error];
|
|
||||||
|
|
||||||
// remove the failed config from the cache
|
|
||||||
[configs_ removeObjectForKey:fetchingConfig_.appKey];
|
|
||||||
// the config is only retained by the dict,now released
|
|
||||||
|
|
||||||
[self finishedFetching];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clean up after fetching, success or failed
|
|
||||||
- (void)finishedFetching {
|
|
||||||
[connection_ release], connection_ = nil;
|
|
||||||
[receivedData_ release], receivedData_ = nil;
|
|
||||||
fetchingConfig_ = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark reachability methods
|
|
||||||
|
|
||||||
- (void)reachabilityNotReachable:(AWNetworkReachabilityWrapper *)reach {
|
|
||||||
if (reach != reachability_) {
|
|
||||||
AWLogWarn(@"Unrecognized reachability object called not reachable %s:%d",
|
|
||||||
__FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
AWLogDebug(@"Config host %@ not (yet) reachable, check back later",
|
|
||||||
reach.hostname);
|
|
||||||
[reachability_ release], reachability_ = nil;
|
|
||||||
[self performSelector:@selector(checkReachability)
|
|
||||||
withObject:nil
|
|
||||||
afterDelay:10.0];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)reachabilityBecameReachable:(AWNetworkReachabilityWrapper *)reach {
|
|
||||||
if (reach != reachability_) {
|
|
||||||
AWLogWarn(@"Unrecognized reachability object called reachable %s:%d",
|
|
||||||
__FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// done with the reachability
|
|
||||||
[reachability_ release], reachability_ = nil;
|
|
||||||
|
|
||||||
[self startFetchingAssumingReachable];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark NSURLConnection delegate methods.
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn
|
|
||||||
didReceiveResponse:(NSURLResponse *)response {
|
|
||||||
if (conn != connection_) {
|
|
||||||
AWLogError(@"Unrecognized connection object %s:%d", __FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
|
|
||||||
NSHTTPURLResponse *http = (NSHTTPURLResponse*)response;
|
|
||||||
const int status = [http statusCode];
|
|
||||||
|
|
||||||
if (status < 200 || status >= 300) {
|
|
||||||
AWLogWarn(@"AdWhirlConfig: HTTP %d, cancelling %@", status, [http URL]);
|
|
||||||
[connection_ cancel];
|
|
||||||
[self failedFetchingWithError:
|
|
||||||
[AdWhirlError errorWithCode:AdWhirlConfigStatusError
|
|
||||||
description:@"Config server did not return status 200"]];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[receivedData_ setLength:0];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didFailWithError:(NSError *)error {
|
|
||||||
if (conn != connection_) {
|
|
||||||
AWLogError(@"Unrecognized connection object %s:%d", __FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
[self failedFetchingWithError:
|
|
||||||
[AdWhirlError errorWithCode:AdWhirlConfigConnectionError
|
|
||||||
description:@"Error connecting to config server"
|
|
||||||
underlyingError:error]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connectionDidFinishLoading:(NSURLConnection *)conn {
|
|
||||||
if (conn != connection_) {
|
|
||||||
AWLogError(@"Unrecognized connection object %s:%d", __FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
[fetchingConfig_ parseConfig:receivedData_ error:nil];
|
|
||||||
[self finishedFetching];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data {
|
|
||||||
if (conn != connection_) {
|
|
||||||
AWLogError(@"Unrecognized connection object %s:%d", __FILE__, __LINE__);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
[receivedData_ appendData:data];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlCustomAdView.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AWCustomAdTypeMIN = 0,
|
|
||||||
AWCustomAdTypeBanner = 1,
|
|
||||||
AWCustomAdTypeText = 2,
|
|
||||||
AWCustomAdTypeAutoLaunchFallBackBanner = 3,
|
|
||||||
AWCustomAdTypeAutoLaunchFallBackText = 4,
|
|
||||||
AWCustomAdTypeSearchBar = 5,
|
|
||||||
AWCustomAdTypeMAX = 6
|
|
||||||
} AWCustomAdType;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AWCustomAdLaunchTypeMIN = 0,
|
|
||||||
AWCustomAdLaunchTypeSafari = 1,
|
|
||||||
AWCustomAdLaunchTypeCanvas = 2,
|
|
||||||
AWCustomAdLaunchTypeSafariRedirectFollowThrough = 3,
|
|
||||||
AWCustomAdLaunchTypeMAX = 4
|
|
||||||
} AWCustomAdLaunchType;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AWCustomAdWebViewAnimTypeMIN = -1,
|
|
||||||
AWCustomAdWebViewAnimTypeNone = 0,
|
|
||||||
AWCustomAdWebViewAnimTypeFlipFromLeft = 1,
|
|
||||||
AWCustomAdWebViewAnimTypeFlipFromRight = 2,
|
|
||||||
AWCustomAdWebViewAnimTypeCurlUp = 3,
|
|
||||||
AWCustomAdWebViewAnimTypeCurlDown = 4,
|
|
||||||
AWCustomAdWebViewAnimTypeSlideFromLeft = 5,
|
|
||||||
AWCustomAdWebViewAnimTypeSlideFromRight = 6,
|
|
||||||
AWCustomAdWebViewAnimTypeFadeIn = 7,
|
|
||||||
AWCustomAdWebViewAnimTypeModal = 8,
|
|
||||||
AWCustomAdWebViewAnimTypeRandom = 9,
|
|
||||||
AWCustomAdWebViewAnimTypeMAX = 10
|
|
||||||
} AWCustomAdWebViewAnimType;
|
|
||||||
|
|
||||||
@class AdWhirlCustomAdView;
|
|
||||||
|
|
||||||
@protocol AdWhirlCustomAdViewDelegate<NSObject>
|
|
||||||
|
|
||||||
- (void)adTapped:(AdWhirlCustomAdView *)adView;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@interface AdWhirlCustomAdView : UIButton
|
|
||||||
{
|
|
||||||
id<AdWhirlCustomAdViewDelegate> delegate;
|
|
||||||
UIImage *image;
|
|
||||||
UILabel *textLabel;
|
|
||||||
NSURL *redirectURL;
|
|
||||||
NSURL *clickMetricsURL;
|
|
||||||
AWCustomAdType adType;
|
|
||||||
AWCustomAdLaunchType launchType;
|
|
||||||
AWCustomAdWebViewAnimType animType;
|
|
||||||
UIColor *backgroundColor;
|
|
||||||
UIColor *textColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithDelegate:(id<AdWhirlCustomAdViewDelegate>)delegate
|
|
||||||
text:(NSString *)text
|
|
||||||
redirectURL:(NSURL *)redirectURL
|
|
||||||
clickMetricsURL:(NSURL *)clickMetricsURL
|
|
||||||
adType:(AWCustomAdType)adType
|
|
||||||
launchType:(AWCustomAdLaunchType)launchType
|
|
||||||
animType:(AWCustomAdWebViewAnimType)animType
|
|
||||||
backgroundColor:(UIColor *)bgColor
|
|
||||||
textColor:(UIColor *)fgColor;
|
|
||||||
|
|
||||||
@property (nonatomic,assign) id<AdWhirlCustomAdViewDelegate> delegate;
|
|
||||||
@property (nonatomic,retain) UIImage *image;
|
|
||||||
@property (nonatomic,readonly) UILabel *textLabel;
|
|
||||||
@property (nonatomic,readonly) NSURL *redirectURL;
|
|
||||||
@property (nonatomic,readonly) NSURL *clickMetricsURL;
|
|
||||||
@property (nonatomic,readonly) AWCustomAdType adType;
|
|
||||||
@property (nonatomic,readonly) AWCustomAdLaunchType launchType;
|
|
||||||
@property (nonatomic,readonly) AWCustomAdWebViewAnimType animType;
|
|
||||||
@property (nonatomic,readonly) UIColor *backgroundColor;
|
|
||||||
@property (nonatomic,readonly) UIColor *textColor;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,168 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlCustomAdView.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlCustomAdView
|
|
||||||
|
|
||||||
@synthesize delegate;
|
|
||||||
@synthesize image;
|
|
||||||
@synthesize textLabel;
|
|
||||||
@synthesize redirectURL;
|
|
||||||
@synthesize clickMetricsURL;
|
|
||||||
@synthesize adType;
|
|
||||||
@synthesize launchType;
|
|
||||||
@synthesize animType;
|
|
||||||
@synthesize backgroundColor;
|
|
||||||
@synthesize textColor;
|
|
||||||
|
|
||||||
- (id)initWithDelegate:(id<AdWhirlCustomAdViewDelegate>)d
|
|
||||||
text:(NSString *)txt
|
|
||||||
redirectURL:(NSURL *)rURL
|
|
||||||
clickMetricsURL:(NSURL *)cURL
|
|
||||||
adType:(AWCustomAdType)aType
|
|
||||||
launchType:(AWCustomAdLaunchType)launch
|
|
||||||
animType:(AWCustomAdWebViewAnimType)anim
|
|
||||||
backgroundColor:(UIColor *)bgColor
|
|
||||||
textColor:(UIColor *)fgColor {
|
|
||||||
|
|
||||||
self = [super initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
if (self != nil) {
|
|
||||||
delegate = d;
|
|
||||||
redirectURL = [rURL retain];
|
|
||||||
clickMetricsURL = [cURL retain];
|
|
||||||
adType = aType;
|
|
||||||
launchType = launch;
|
|
||||||
animType = anim;
|
|
||||||
backgroundColor = [bgColor retain];
|
|
||||||
textColor = [fgColor retain];
|
|
||||||
|
|
||||||
if (adType == AWCustomAdTypeText) {
|
|
||||||
textLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 0, 270, CGRectGetHeight(self.bounds))];
|
|
||||||
textLabel.text = txt;
|
|
||||||
textLabel.textColor = fgColor;
|
|
||||||
textLabel.numberOfLines = 3;
|
|
||||||
textLabel.backgroundColor = [UIColor clearColor];
|
|
||||||
textLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:13.0];
|
|
||||||
[self addSubview:textLabel];
|
|
||||||
}
|
|
||||||
|
|
||||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
||||||
button.frame = self.bounds;
|
|
||||||
button.showsTouchWhenHighlighted = YES;
|
|
||||||
[button addTarget:self action:@selector(buttonTapUp:) forControlEvents:UIControlEventTouchUpInside];
|
|
||||||
[self addSubview:button];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define kNumBgColors 3
|
|
||||||
#define kImageLeft 4
|
|
||||||
#define kCornerRadius 7.0
|
|
||||||
#define kImageDim 39 // assume square, so this is length of each side
|
|
||||||
#define kChamferLight [UIColor colorWithWhite:0.9 alpha:1].CGColor
|
|
||||||
#define kChamferDark [UIColor colorWithWhite:0.4 alpha:1].CGColor
|
|
||||||
|
|
||||||
- (void)drawRect:(CGRect)rect {
|
|
||||||
|
|
||||||
CGContextRef ctx = UIGraphicsGetCurrentContext();
|
|
||||||
if (adType == AWCustomAdTypeText) {
|
|
||||||
|
|
||||||
// draw background
|
|
||||||
CGFloat locations[kNumBgColors] = {0.0, 0.7, 1.0};
|
|
||||||
CGColorRef colorArray[kNumBgColors] =
|
|
||||||
{[backgroundColor colorWithAlphaComponent:0.6].CGColor,
|
|
||||||
backgroundColor.CGColor,
|
|
||||||
backgroundColor.CGColor};
|
|
||||||
CFArrayRef colors = CFArrayCreate(kCFAllocatorDefault,
|
|
||||||
(const void **)colorArray,
|
|
||||||
kNumBgColors,
|
|
||||||
&kCFTypeArrayCallBacks);
|
|
||||||
CGGradientRef gradient = CGGradientCreateWithColors(NULL, colors, locations);
|
|
||||||
CFRelease(colors);
|
|
||||||
CGContextSetFillColorWithColor(ctx, [UIColor whiteColor].CGColor);
|
|
||||||
CGContextFillRect(ctx, CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds)));
|
|
||||||
CGPoint midY = CGPointMake(0.0, CGRectGetHeight(self.bounds)/2);
|
|
||||||
CGPoint lowY = CGPointMake(0.0, CGRectGetHeight(self.bounds));
|
|
||||||
CGContextDrawLinearGradient(ctx, gradient, CGPointZero, midY, 0);
|
|
||||||
CGContextDrawLinearGradient(ctx, gradient, lowY, midY, 0);
|
|
||||||
CGGradientRelease(gradient);
|
|
||||||
|
|
||||||
// draw image and chamfer
|
|
||||||
CGFloat imageTop = (CGRectGetHeight(self.bounds) - kImageDim)/2.0;
|
|
||||||
CGPoint tl = CGPointMake(kImageLeft+kCornerRadius, imageTop+kCornerRadius);
|
|
||||||
CGPoint tr = CGPointMake(kImageLeft+kImageDim-kCornerRadius, imageTop+kCornerRadius);
|
|
||||||
CGPoint br = CGPointMake(kImageLeft+kImageDim-kCornerRadius, imageTop+kImageDim-kCornerRadius);
|
|
||||||
CGPoint bl = CGPointMake(kImageLeft+kCornerRadius, imageTop+kImageDim-kCornerRadius);
|
|
||||||
CGContextSaveGState(ctx);
|
|
||||||
CGContextMoveToPoint(ctx, kImageLeft, imageTop+kCornerRadius);
|
|
||||||
CGContextAddArc(ctx, tl.x, tl.y, kCornerRadius, M_PI, 3*M_PI/2, 0);
|
|
||||||
CGContextAddArc(ctx, tr.x, tr.y, kCornerRadius, 3*M_PI/2, 0, 0);
|
|
||||||
CGContextAddArc(ctx, br.x, br.y, kCornerRadius, 0, M_PI/2, 0);
|
|
||||||
CGContextAddArc(ctx, bl.x, bl.y, kCornerRadius, M_PI/2, M_PI, 0);
|
|
||||||
CGContextClosePath(ctx);
|
|
||||||
CGContextClip(ctx);
|
|
||||||
[image drawAtPoint:CGPointMake(kImageLeft, imageTop)];
|
|
||||||
CGContextSetLineWidth(ctx, 0.5);
|
|
||||||
CGContextMoveToPoint(ctx, kImageLeft, imageTop+kImageDim-kCornerRadius);
|
|
||||||
CGContextSetStrokeColorWithColor(ctx, kChamferDark);
|
|
||||||
CGContextAddArc(ctx, tl.x, tl.y, kCornerRadius, M_PI, 5*M_PI/4, 0);
|
|
||||||
CGContextStrokePath(ctx);
|
|
||||||
CGContextSetStrokeColorWithColor(ctx, kChamferLight);
|
|
||||||
CGContextAddArc(ctx, tl.x, tl.y, kCornerRadius, 5*M_PI/4, 3*M_PI/2, 0);
|
|
||||||
CGContextAddArc(ctx, tr.x, tr.y, kCornerRadius, 3*M_PI/2, 0, 0);
|
|
||||||
CGContextAddArc(ctx, br.x, br.y, kCornerRadius, 0, M_PI/4, 0);
|
|
||||||
CGContextStrokePath(ctx);
|
|
||||||
CGContextSetStrokeColorWithColor(ctx, kChamferDark);
|
|
||||||
CGContextAddArc(ctx, br.x, br.y, kCornerRadius, M_PI/4, M_PI/2, 0);
|
|
||||||
CGContextAddArc(ctx, bl.x, bl.y, kCornerRadius, M_PI/2, M_PI, 0);
|
|
||||||
CGContextStrokePath(ctx);
|
|
||||||
CGContextRestoreGState(ctx);
|
|
||||||
|
|
||||||
} // text ad
|
|
||||||
else if (adType == AWCustomAdTypeBanner) {
|
|
||||||
// draw image, place image in center of frame
|
|
||||||
[image drawAtPoint:CGPointMake((self.frame.size.width-image.size.width)/2,
|
|
||||||
(self.frame.size.height-image.size.height)/2)];
|
|
||||||
} // banner ad
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[image release], image = nil;
|
|
||||||
[textLabel release], textLabel = nil;
|
|
||||||
[redirectURL release], redirectURL = nil;
|
|
||||||
[clickMetricsURL release], clickMetricsURL = nil;
|
|
||||||
[backgroundColor release], backgroundColor = nil;
|
|
||||||
[textColor release], textColor = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark UIButton control events
|
|
||||||
|
|
||||||
- (void)buttonTapUp:(id)sender {
|
|
||||||
if (delegate != nil) {
|
|
||||||
[delegate adTapped:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlError.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
#define AdWhirlErrorDomain @"com.adwhirl.sdk.ErrorDomain"
|
|
||||||
|
|
||||||
enum {
|
|
||||||
AdWhirlConfigConnectionError = 10, /* Cannot connect to config server */
|
|
||||||
AdWhirlConfigStatusError = 11, /* config server did not return 200 */
|
|
||||||
AdWhirlConfigParseError = 20, /* Error parsing config from server */
|
|
||||||
AdWhirlConfigDataError = 30, /* Invalid config format from server */
|
|
||||||
AdWhirlCustomAdConnectionError = 40, /* Cannot connect to custom ad server */
|
|
||||||
AdWhirlCustomAdParseError = 50, /* Error parsing custom ad from server */
|
|
||||||
AdWhirlCustomAdDataError = 60, /* Invalid custom ad data from server */
|
|
||||||
AdWhirlCustomAdImageError = 70, /* Cannot create image from data */
|
|
||||||
AdWhirlAdRequestIgnoredError = 80, /* ignoreNewAdRequests flag is set */
|
|
||||||
AdWhirlAdRequestInProgressError = 90, /* ad request in progress */
|
|
||||||
AdWhirlAdRequestNoConfigError = 100, /* no configurations for ad request */
|
|
||||||
AdWhirlAdRequestTooSoonError = 110, /* requesting ad too soon */
|
|
||||||
AdWhirlAdRequestNoMoreAdNetworks = 120, /* no more ad networks for rollover */
|
|
||||||
AdWhirlAdRequestNoNetworkError = 130, /* no network connection */
|
|
||||||
AdWhirlAdRequestModalActiveError = 140 /* modal view active */
|
|
||||||
};
|
|
||||||
|
|
||||||
@interface AdWhirlError : NSError {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code userInfo:(NSDictionary *)dict;
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code description:(NSString *)desc;
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code description:(NSString *)desc underlyingError:(NSError *)uError;
|
|
||||||
|
|
||||||
- (id)initWithCode:(NSInteger)code userInfo:(NSDictionary *)dict;
|
|
||||||
- (id)initWithCode:(NSInteger)code description:(NSString *)desc;
|
|
||||||
- (id)initWithCode:(NSInteger)code description:(NSString *)desc underlyingError:(NSError *)uError;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlError.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlError.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlError
|
|
||||||
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code userInfo:(NSDictionary *)dict {
|
|
||||||
return [[[AdWhirlError alloc] initWithCode:code userInfo:dict] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code description:(NSString *)desc {
|
|
||||||
return [[[AdWhirlError alloc] initWithCode:code description:desc] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AdWhirlError *)errorWithCode:(NSInteger)code description:(NSString *)desc underlyingError:(NSError *)uError {
|
|
||||||
return [[[AdWhirlError alloc] initWithCode:code description:desc underlyingError:uError] autorelease];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithCode:(NSInteger)code userInfo:(NSDictionary *)dict {
|
|
||||||
return [super initWithDomain:AdWhirlErrorDomain code:code userInfo:dict];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithCode:(NSInteger)code description:(NSString *)desc {
|
|
||||||
NSDictionary *eInfo = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
desc, NSLocalizedDescriptionKey,
|
|
||||||
nil];
|
|
||||||
return [super initWithDomain:AdWhirlErrorDomain code:code userInfo:eInfo];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithCode:(NSInteger)code description:(NSString *)desc underlyingError:(NSError *)uError {
|
|
||||||
NSDictionary *eInfo = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
||||||
desc, NSLocalizedDescriptionKey,
|
|
||||||
uError, NSUnderlyingErrorKey,
|
|
||||||
nil];
|
|
||||||
return [super initWithDomain:AdWhirlErrorDomain code:code userInfo:eInfo];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlLog.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
AWLogLevelNone = 0,
|
|
||||||
AWLogLevelCrit = 10,
|
|
||||||
AWLogLevelError = 20,
|
|
||||||
AWLogLevelWarn = 30,
|
|
||||||
AWLogLevelInfo = 40,
|
|
||||||
AWLogLevelDebug = 50
|
|
||||||
} AWLogLevel;
|
|
||||||
|
|
||||||
void AWLogSetLogLevel(AWLogLevel level);
|
|
||||||
|
|
||||||
// The actual function name has an underscore prefix, just so we can
|
|
||||||
// hijack AWLog* with other functions for testing, by defining
|
|
||||||
// preprocessor macros
|
|
||||||
void _AWLogCrit(NSString *format, ...);
|
|
||||||
void _AWLogError(NSString *format, ...);
|
|
||||||
void _AWLogWarn(NSString *format, ...);
|
|
||||||
void _AWLogInfo(NSString *format, ...);
|
|
||||||
void _AWLogDebug(NSString *format, ...);
|
|
||||||
|
|
||||||
#ifndef AWLogCrit
|
|
||||||
#define AWLogCrit(...) _AWLogCrit(__VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef AWLogError
|
|
||||||
#define AWLogError(...) _AWLogError(__VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef AWLogWarn
|
|
||||||
#define AWLogWarn(...) _AWLogWarn(__VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef AWLogInfo
|
|
||||||
#define AWLogInfo(...) _AWLogInfo(__VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef AWLogDebug
|
|
||||||
#define AWLogDebug(...) _AWLogDebug(__VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlLog.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
static AWLogLevel g_AWLogLevel = AWLogLevelInfo;
|
|
||||||
|
|
||||||
void AWLogSetLogLevel(AWLogLevel level) {
|
|
||||||
g_AWLogLevel = level;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _AWLogCrit(NSString *format, ...) {
|
|
||||||
if (g_AWLogLevel < AWLogLevelCrit) return;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
NSLogv(format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _AWLogError(NSString *format, ...) {
|
|
||||||
if (g_AWLogLevel < AWLogLevelError) return;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
NSLogv(format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _AWLogWarn(NSString *format, ...) {
|
|
||||||
if (g_AWLogLevel < AWLogLevelWarn) return;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
NSLogv(format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _AWLogInfo(NSString *format, ...) {
|
|
||||||
if (g_AWLogLevel < AWLogLevelInfo) return;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
NSLogv(format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _AWLogDebug(NSString *format, ...) {
|
|
||||||
if (g_AWLogLevel < AWLogLevelDebug) return;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
NSLogv(format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlView+.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlAdNetworkAdapter.h"
|
|
||||||
|
|
||||||
|
|
||||||
@class AdWhirlConfigStore;
|
|
||||||
|
|
||||||
|
|
||||||
@interface AdWhirlView ()
|
|
||||||
|
|
||||||
// Only initializes default values for member variables
|
|
||||||
- (id)initWithDelegate:(id<AdWhirlDelegate>)delegate;
|
|
||||||
|
|
||||||
// Kicks off getting config from AdWhirlConfigStore
|
|
||||||
- (void)startGetConfig;
|
|
||||||
|
|
||||||
- (void)buildPrioritizedAdNetCfgsAndMakeRequest;
|
|
||||||
- (AdWhirlAdNetworkConfig *)nextNetworkCfgByPercent;
|
|
||||||
- (AdWhirlAdNetworkConfig *)nextNetworkCfgByPriority;
|
|
||||||
- (void)makeAdRequest:(BOOL)isFirstRequest;
|
|
||||||
- (void)reportExImpression:(NSString *)nid netType:(AdWhirlAdNetworkType)type;
|
|
||||||
- (void)reportExClick:(NSString *)nid netType:(AdWhirlAdNetworkType)type;
|
|
||||||
- (BOOL)canRefresh;
|
|
||||||
- (void)resignActive:(NSNotification *)notification;
|
|
||||||
- (void)becomeActive:(NSNotification *)notification;
|
|
||||||
|
|
||||||
- (void)notifyDelegateOfErrorWithCode:(NSInteger)errorCode
|
|
||||||
description:(NSString *)desc;
|
|
||||||
- (void)notifyDelegateOfError:(NSError *)error;
|
|
||||||
|
|
||||||
@property (retain) AdWhirlConfig *config;
|
|
||||||
@property (retain) NSMutableArray *prioritizedAdNetCfgs;
|
|
||||||
@property (nonatomic,retain) AdWhirlAdNetworkAdapter *currAdapter;
|
|
||||||
@property (nonatomic,retain) AdWhirlAdNetworkAdapter *lastAdapter;
|
|
||||||
@property (nonatomic,retain) NSDate *lastRequestTime;
|
|
||||||
@property (nonatomic,retain) NSTimer *refreshTimer;
|
|
||||||
@property (nonatomic) BOOL showingModalView;
|
|
||||||
@property (nonatomic,assign) AdWhirlConfigStore *configStore;
|
|
||||||
@property (nonatomic,retain) AWNetworkReachabilityWrapper *rollOverReachability;
|
|
||||||
@property (nonatomic,retain) NSArray *testDarts;
|
|
||||||
|
|
||||||
@end
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,764 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">784</int>
|
|
||||||
<string key="IBDocument.SystemVersion">10D573</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string key="NS.object.0">87</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="1"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBProxyObject" id="372490531">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBProxyObject" id="711762367">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIView" id="191373211">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">274</int>
|
|
||||||
<object class="NSMutableArray" key="NSSubviews">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBUIWebView" id="332242366">
|
|
||||||
<reference key="NSNextResponder" ref="191373211"/>
|
|
||||||
<int key="NSvFlags">274</int>
|
|
||||||
<string key="NSFrameSize">{320, 436}</string>
|
|
||||||
<reference key="NSSuperview" ref="191373211"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
<object class="NSColorSpace" key="NSCustomColorSpace" id="139087982">
|
|
||||||
<int key="NSID">2</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
|
||||||
<int key="IBUITag">2000</int>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<bool key="IBUIScalesPageToFit">YES</bool>
|
|
||||||
<int key="IBUIDataDetectorTypes">1</int>
|
|
||||||
<bool key="IBUIDetectsPhoneNumbers">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIToolbar" id="498818201">
|
|
||||||
<reference key="NSNextResponder" ref="191373211"/>
|
|
||||||
<int key="NSvFlags">266</int>
|
|
||||||
<string key="NSFrame">{{0, 436}, {320, 44}}</string>
|
|
||||||
<reference key="NSSuperview" ref="191373211"/>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<int key="IBUITag">1000</int>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<object class="NSMutableArray" key="IBUIItems">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBUIBarButtonItem" id="661950208">
|
|
||||||
<int key="IBUITag">1001</int>
|
|
||||||
<bool key="IBUIEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="202270411">
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">5</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="624932652">
|
|
||||||
<int key="IBUITag">1002</int>
|
|
||||||
<bool key="IBUIEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">17</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="694191601">
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">5</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="507199361">
|
|
||||||
<int key="IBUITag">1003</int>
|
|
||||||
<bool key="IBUIEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">13</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="1058448904">
|
|
||||||
<int key="IBUITag">1004</int>
|
|
||||||
<bool key="IBUIEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">14</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="312829093">
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">5</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="944463797">
|
|
||||||
<int key="IBUITag">1005</int>
|
|
||||||
<bool key="IBUIEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">9</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="629368778">
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">5</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIBarButtonItem" id="72154307">
|
|
||||||
<int key="IBUITag">1006</int>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<int key="IBUIStyle">1</int>
|
|
||||||
<reference key="IBUIToolbar" ref="498818201"/>
|
|
||||||
<int key="IBUISystemItemIdentifier">0</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="IBUITintColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MAA</bytes>
|
|
||||||
<reference key="NSCustomColorSpace" ref="139087982"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="NSFrameSize">{320, 480}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MAA</bytes>
|
|
||||||
<reference key="NSCustomColorSpace" ref="139087982"/>
|
|
||||||
</object>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">view</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="191373211"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">10</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="332242366"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">13</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">back:</string>
|
|
||||||
<reference key="source" ref="661950208"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">41</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">forward:</string>
|
|
||||||
<reference key="source" ref="624932652"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">42</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">reload:</string>
|
|
||||||
<reference key="source" ref="507199361"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">43</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">stop:</string>
|
|
||||||
<reference key="source" ref="1058448904"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">44</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">linkOut:</string>
|
|
||||||
<reference key="source" ref="944463797"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">45</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">close:</string>
|
|
||||||
<reference key="source" ref="72154307"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">46</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">backButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="661950208"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">64</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">closeButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="72154307"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">65</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">forwardButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="624932652"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">66</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">linkOutButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="944463797"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">67</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">reloadButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="507199361"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">68</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">stopButton</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="1058448904"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">69</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">webView</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="332242366"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">70</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">toolBar</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">71</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<object class="NSArray" key="orderedObjects">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<reference key="object" ref="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">1</int>
|
|
||||||
<reference key="object" ref="191373211"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="498818201"/>
|
|
||||||
<reference ref="332242366"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="372490531"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="711762367"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">3</int>
|
|
||||||
<reference key="object" ref="332242366"/>
|
|
||||||
<reference key="parent" ref="191373211"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">4</int>
|
|
||||||
<reference key="object" ref="498818201"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="661950208"/>
|
|
||||||
<reference ref="624932652"/>
|
|
||||||
<reference ref="312829093"/>
|
|
||||||
<reference ref="944463797"/>
|
|
||||||
<reference ref="694191601"/>
|
|
||||||
<reference ref="202270411"/>
|
|
||||||
<reference ref="1058448904"/>
|
|
||||||
<reference ref="507199361"/>
|
|
||||||
<reference ref="629368778"/>
|
|
||||||
<reference ref="72154307"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="191373211"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">5</int>
|
|
||||||
<reference key="object" ref="661950208"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">6</int>
|
|
||||||
<reference key="object" ref="624932652"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">7</int>
|
|
||||||
<reference key="object" ref="507199361"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">8</int>
|
|
||||||
<reference key="object" ref="312829093"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">9</int>
|
|
||||||
<reference key="object" ref="944463797"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">25</int>
|
|
||||||
<reference key="object" ref="694191601"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">26</int>
|
|
||||||
<reference key="object" ref="202270411"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">31</int>
|
|
||||||
<reference key="object" ref="1058448904"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">39</int>
|
|
||||||
<reference key="object" ref="629368778"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">40</int>
|
|
||||||
<reference key="object" ref="72154307"/>
|
|
||||||
<reference key="parent" ref="498818201"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>-1.CustomClassName</string>
|
|
||||||
<string>-2.CustomClassName</string>
|
|
||||||
<string>1.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>1.IBPluginDependency</string>
|
|
||||||
<string>25.IBPluginDependency</string>
|
|
||||||
<string>26.IBPluginDependency</string>
|
|
||||||
<string>3.IBPluginDependency</string>
|
|
||||||
<string>31.IBPluginDependency</string>
|
|
||||||
<string>39.IBPluginDependency</string>
|
|
||||||
<string>4.IBPluginDependency</string>
|
|
||||||
<string>40.IBPluginDependency</string>
|
|
||||||
<string>5.CustomClassName</string>
|
|
||||||
<string>5.IBPluginDependency</string>
|
|
||||||
<string>6.IBPluginDependency</string>
|
|
||||||
<string>7.IBPluginDependency</string>
|
|
||||||
<string>8.IBPluginDependency</string>
|
|
||||||
<string>9.IBPluginDependency</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>AdWhirlWebBrowserController</string>
|
|
||||||
<string>UIResponder</string>
|
|
||||||
<string>{{577, 64}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>AdWhirlBackButton</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="activeLocalization"/>
|
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="sourceID"/>
|
|
||||||
<int key="maxID">71</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">AdWhirlBackButton</string>
|
|
||||||
<string key="superclassName">UIBarButtonItem</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="40087982">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">../AdWhirl/internal/AdWhirlWebBrowserController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">AdWhirlWebBrowserController</string>
|
|
||||||
<string key="superclassName">UIViewController</string>
|
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>back:</string>
|
|
||||||
<string>close:</string>
|
|
||||||
<string>forward:</string>
|
|
||||||
<string>linkOut:</string>
|
|
||||||
<string>reload:</string>
|
|
||||||
<string>stop:</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>backButton</string>
|
|
||||||
<string>closeButton</string>
|
|
||||||
<string>delegate</string>
|
|
||||||
<string>forwardButton</string>
|
|
||||||
<string>linkOutButton</string>
|
|
||||||
<string>reloadButton</string>
|
|
||||||
<string>stopButton</string>
|
|
||||||
<string>toolBar</string>
|
|
||||||
<string>webView</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>UIBarButtonItem</string>
|
|
||||||
<string>UIToolbar</string>
|
|
||||||
<string>UIWebView</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<reference key="sourceIdentifier" ref="40087982"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="808166449">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIBarButtonItem</string>
|
|
||||||
<string key="superclassName">UIBarItem</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIBarItem</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIResponder</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="808166449"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchBar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchDisplayController</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIToolbar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIWebView</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
|
||||||
<integer value="784" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
|
||||||
<integer value="768" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
|
||||||
<integer value="3000" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">../AdWhirlSDK2_Sample.xcodeproj</string>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<string key="IBCocoaTouchPluginVersion">87</string>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlWebBrowserController.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "AdWhirlCustomAdView.h"
|
|
||||||
|
|
||||||
@class AdWhirlWebBrowserController;
|
|
||||||
|
|
||||||
@protocol AdWhirlWebBrowserControllerDelegate<NSObject>
|
|
||||||
|
|
||||||
- (void)webBrowserClosed:(AdWhirlWebBrowserController *)controller;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@interface AdWhirlWebBrowserController : UIViewController <UIWebViewDelegate> {
|
|
||||||
id<AdWhirlWebBrowserControllerDelegate> delegate;
|
|
||||||
UIViewController *viewControllerForPresenting;
|
|
||||||
NSArray *loadingButtons;
|
|
||||||
NSArray *loadedButtons;
|
|
||||||
AWCustomAdWebViewAnimType transitionType;
|
|
||||||
|
|
||||||
UIWebView *webView;
|
|
||||||
UIToolbar *toolBar;
|
|
||||||
UIBarButtonItem *backButton;
|
|
||||||
UIBarButtonItem *forwardButton;
|
|
||||||
UIBarButtonItem *reloadButton;
|
|
||||||
UIBarButtonItem *stopButton;
|
|
||||||
UIBarButtonItem *linkOutButton;
|
|
||||||
UIBarButtonItem *closeButton;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic,assign) id<AdWhirlWebBrowserControllerDelegate> delegate;
|
|
||||||
@property (nonatomic,assign) UIViewController *viewControllerForPresenting;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIWebView *webView;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIToolbar *toolBar;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *backButton;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *forwardButton;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *reloadButton;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *stopButton;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *linkOutButton;
|
|
||||||
@property (nonatomic,retain) IBOutlet UIBarButtonItem *closeButton;
|
|
||||||
|
|
||||||
- (void)presentWithController:(UIViewController *)viewController transition:(AWCustomAdWebViewAnimType)animType;
|
|
||||||
- (void)loadURL:(NSURL *)url;
|
|
||||||
- (IBAction)back:(id)sender;
|
|
||||||
- (IBAction)forward:(id)sender;
|
|
||||||
- (IBAction)reload:(id)sender;
|
|
||||||
- (IBAction)stop:(id)sender;
|
|
||||||
- (IBAction)linkOut:(id)sender;
|
|
||||||
- (IBAction)close:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface AdWhirlBackButton : UIBarButtonItem
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,266 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlWebBrowserController.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlWebBrowserController.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
#define kAWWebViewAnimDuration 1.0
|
|
||||||
|
|
||||||
@interface AdWhirlWebBrowserController ()
|
|
||||||
@property (nonatomic,retain) NSArray *loadingButtons;
|
|
||||||
@property (nonatomic,retain) NSArray *loadedButtons;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlWebBrowserController
|
|
||||||
|
|
||||||
@synthesize delegate;
|
|
||||||
@synthesize viewControllerForPresenting;
|
|
||||||
@synthesize loadingButtons;
|
|
||||||
@synthesize loadedButtons;
|
|
||||||
|
|
||||||
@synthesize webView;
|
|
||||||
@synthesize toolBar;
|
|
||||||
@synthesize backButton;
|
|
||||||
@synthesize forwardButton;
|
|
||||||
@synthesize reloadButton;
|
|
||||||
@synthesize stopButton;
|
|
||||||
@synthesize linkOutButton;
|
|
||||||
@synthesize closeButton;
|
|
||||||
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if ((self = [super initWithNibName:@"AdWhirlWebBrowser" bundle:nil])) {
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
if (self.webView.request) {
|
|
||||||
// has content from before, clear by creating another UIWebView
|
|
||||||
CGRect frame = self.webView.frame;
|
|
||||||
NSInteger tag = self.webView.tag;
|
|
||||||
UIWebView *newView = [[UIWebView alloc] initWithFrame:frame];
|
|
||||||
newView.tag = tag;
|
|
||||||
UIWebView *oldView = self.webView;
|
|
||||||
[oldView removeFromSuperview];
|
|
||||||
[self.view addSubview:newView];
|
|
||||||
newView.delegate = self;
|
|
||||||
newView.scalesPageToFit = YES;
|
|
||||||
[newView release];
|
|
||||||
}
|
|
||||||
self.toolBar.items = self.loadedButtons;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
NSArray *items = self.toolBar.items;
|
|
||||||
|
|
||||||
NSMutableArray *loadingItems = [[NSMutableArray alloc] init];
|
|
||||||
[loadingItems addObjectsFromArray:items];
|
|
||||||
[loadingItems removeObjectAtIndex:4];
|
|
||||||
self.loadingButtons = loadingItems;
|
|
||||||
[loadingItems release], loadingItems = nil;
|
|
||||||
|
|
||||||
NSMutableArray *loadedItems = [[NSMutableArray alloc] init];
|
|
||||||
[loadedItems addObjectsFromArray:items];
|
|
||||||
[loadedItems removeObjectAtIndex:5];
|
|
||||||
self.loadedButtons = loadedItems;
|
|
||||||
[loadedItems release], loadedItems = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidDisappear:(BOOL)animated {
|
|
||||||
if (self.delegate) {
|
|
||||||
[delegate webBrowserClosed:self];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
||||||
return [viewControllerForPresenting shouldAutorotateToInterfaceOrientation:interfaceOrientation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
// Releases the view if it doesn't have a superview.
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
|
|
||||||
// Release any cached data, images, etc that aren't in use.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)presentWithController:(UIViewController *)viewController transition:(AWCustomAdWebViewAnimType)animType {
|
|
||||||
self.viewControllerForPresenting = viewController;
|
|
||||||
|
|
||||||
if ([self respondsToSelector:@selector(setModalTransitionStyle:)]) {
|
|
||||||
switch (animType) {
|
|
||||||
case AWCustomAdWebViewAnimTypeFlipFromLeft:
|
|
||||||
case AWCustomAdWebViewAnimTypeFlipFromRight:
|
|
||||||
self.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
|
|
||||||
break;
|
|
||||||
case AWCustomAdWebViewAnimTypeFadeIn:
|
|
||||||
self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
|
|
||||||
case AWCustomAdWebViewAnimTypeModal:
|
|
||||||
default:
|
|
||||||
self.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[viewController presentModalViewController:self animated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)loadURL:(NSURL *)url {
|
|
||||||
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
|
|
||||||
[self.webView loadRequest:urlRequest];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[loadingButtons release], loadingButtons = nil;
|
|
||||||
[loadedButtons release], loadedButtons = nil;
|
|
||||||
|
|
||||||
// IBOutlets were retained automatically
|
|
||||||
webView.delegate = nil;
|
|
||||||
[webView release], webView = nil;
|
|
||||||
[toolBar release], toolBar = nil;
|
|
||||||
[backButton release], backButton = nil;
|
|
||||||
[forwardButton release], forwardButton = nil;
|
|
||||||
[reloadButton release], reloadButton = nil;
|
|
||||||
[stopButton release], stopButton = nil;
|
|
||||||
[linkOutButton release], linkOutButton = nil;
|
|
||||||
[closeButton release], closeButton = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark UIWebViewDelegate methods
|
|
||||||
|
|
||||||
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
|
|
||||||
navigationType:(UIWebViewNavigationType)navigationType {
|
|
||||||
if ([request URL] != nil && [[request URL] scheme] != nil) {
|
|
||||||
if ([[[request URL] scheme] isEqualToString:@"mailto"]) {
|
|
||||||
// need to explicitly call out to the Mail app
|
|
||||||
[[UIApplication sharedApplication] openURL:[request URL]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
|
|
||||||
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
|
|
||||||
self.toolBar.items = self.loadedButtons;
|
|
||||||
if (self.webView.canGoForward) {
|
|
||||||
self.forwardButton.enabled = YES;
|
|
||||||
}
|
|
||||||
if (self.webView.canGoBack) {
|
|
||||||
self.backButton.enabled = YES;
|
|
||||||
}
|
|
||||||
self.reloadButton.enabled = YES;
|
|
||||||
self.stopButton.enabled = NO;
|
|
||||||
if (self.webView.request) {
|
|
||||||
self.linkOutButton.enabled = YES;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)webViewDidFinishLoad:(UIWebView *)webView {
|
|
||||||
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
|
|
||||||
self.toolBar.items = self.loadedButtons;
|
|
||||||
if (self.webView.canGoForward) {
|
|
||||||
self.forwardButton.enabled = YES;
|
|
||||||
}
|
|
||||||
if (self.webView.canGoBack) {
|
|
||||||
self.backButton.enabled = YES;
|
|
||||||
}
|
|
||||||
self.reloadButton.enabled = YES;
|
|
||||||
self.stopButton.enabled = NO;
|
|
||||||
if (self.webView.request) {
|
|
||||||
self.linkOutButton.enabled = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
// // extract title of page
|
|
||||||
// NSString* title = [self.webView stringByEvaluatingJavaScriptFromString: @"document.title"];
|
|
||||||
// self.navigationItem.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)webViewDidStartLoad:(UIWebView *)webView {
|
|
||||||
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
|
|
||||||
self.toolBar.items = self.loadingButtons;
|
|
||||||
self.forwardButton.enabled = NO;
|
|
||||||
self.backButton.enabled = NO;
|
|
||||||
self.reloadButton.enabled = NO;
|
|
||||||
self.stopButton.enabled = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark button targets
|
|
||||||
|
|
||||||
- (IBAction)forward:(id)sender {
|
|
||||||
[self.webView goForward];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)back:(id)sender {
|
|
||||||
[self.webView goBack];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)stop:(id)sender {
|
|
||||||
[self.webView stopLoading];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)reload:(id)sender {
|
|
||||||
[self.webView reload];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)linkOut:(id)sender {
|
|
||||||
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
|
|
||||||
[[UIApplication sharedApplication] openURL:self.webView.request.URL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)close:(id)sender {
|
|
||||||
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
|
|
||||||
[viewControllerForPresenting dismissModalViewControllerAnimated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AdWhirlBackButton
|
|
||||||
|
|
||||||
- (void)awakeFromNib {
|
|
||||||
// draw the back image
|
|
||||||
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
|
|
||||||
CGContextRef ctx = CGBitmapContextCreate(nil, 25, 25, 8, 0, colorspace,
|
|
||||||
kCGImageAlphaPremultipliedLast);
|
|
||||||
CGColorSpaceRelease(colorspace);
|
|
||||||
CGPoint bot = CGPointMake(19, 2);
|
|
||||||
CGPoint top = CGPointMake(19, 20);
|
|
||||||
CGPoint tip = CGPointMake(4, 11);
|
|
||||||
CGContextSetFillColorWithColor(ctx, [UIColor whiteColor].CGColor);
|
|
||||||
CGContextMoveToPoint(ctx, bot.x, bot.y);
|
|
||||||
CGContextAddLineToPoint(ctx, tip.x, tip.y);
|
|
||||||
CGContextAddLineToPoint(ctx, top.x, top.y);
|
|
||||||
CGContextFillPath(ctx);
|
|
||||||
|
|
||||||
// set the image
|
|
||||||
CGImageRef backImgRef = CGBitmapContextCreateImage(ctx);
|
|
||||||
CGContextRelease(ctx);
|
|
||||||
UIImage* backImage = [[UIImage alloc] initWithCGImage:backImgRef];
|
|
||||||
CGImageRelease(backImgRef);
|
|
||||||
self.image = backImage;
|
|
||||||
[backImage release];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
UIColor+AdWhirlConfig.h
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "UIColor+AdWhirlConfig.h"
|
|
||||||
|
|
||||||
@class AdWhirlConfig;
|
|
||||||
|
|
||||||
@interface UIColor (AdWhirlConfig)
|
|
||||||
|
|
||||||
- (id)initWithDict:(NSDictionary *)dict;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
UIColor+AdWhirlConfig.m
|
|
||||||
|
|
||||||
Copyright 2010 Google Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "UIColor+AdWhirlConfig.h"
|
|
||||||
#import "AdWhirlConfig.h"
|
|
||||||
|
|
||||||
@implementation UIColor (AdWhirlConfig)
|
|
||||||
|
|
||||||
- (id)initWithDict:(NSDictionary *)dict {
|
|
||||||
id red, green, blue, alpha;
|
|
||||||
CGFloat r, g, b, a;
|
|
||||||
|
|
||||||
red = [dict objectForKey:@"red"];
|
|
||||||
if (red == nil) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
green = [dict objectForKey:@"green"];
|
|
||||||
if (green == nil) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
blue = [dict objectForKey:@"blue"];
|
|
||||||
if (blue == nil) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSInteger temp;
|
|
||||||
if (!awIntVal(&temp, red)) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
r = (CGFloat)temp/255.0;
|
|
||||||
if (!awIntVal(&temp, green)) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
g = (CGFloat)temp/255.0;
|
|
||||||
if (!awIntVal(&temp, blue)) {
|
|
||||||
[self release];
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
b = (CGFloat)temp/255.0;
|
|
||||||
|
|
||||||
a = 1.0; // default 1.0
|
|
||||||
alpha = [dict objectForKey:@"alpha"];
|
|
||||||
CGFloat temp_f;
|
|
||||||
if (alpha != nil && awFloatVal(&temp_f, alpha)) {
|
|
||||||
a = (CGFloat)temp_f;
|
|
||||||
}
|
|
||||||
|
|
||||||
return [self initWithRed:r green:g blue:b alpha:a];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
ARRollerProtocol.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
#define ARRollerDelegate AdWhirlDelegate
|
|
||||||
|
|
||||||
#define adRolloApplicationKey adWhirlApplicationKey
|
|
||||||
#define rollerDidReceiveAd adWhirlDidReceiveAd
|
|
||||||
#define rollerDidFailToReceiveAd adWhirlDidFailToReceiveAd
|
|
||||||
#define rollerReceivedRequestForDeveloperToFulfill adWhirlReceivedRequestForDeveloperToFufill
|
|
||||||
#define rollerReceivedNotificationAdsAreOff adWhirlView
|
|
||||||
#define willDisplayWebViewCanvas adWhirlWillPresentFullScreenModal
|
|
||||||
#define didDismissWebViewCanvas adWhirlDidDismissFullScreenModal
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
ARRollerView.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "ARRollerProtocol.h"
|
|
||||||
|
|
||||||
@interface ARRollerView : AdWhirlView
|
|
||||||
|
|
||||||
+ (ARRollerView*)requestRollerViewWithDelegate:(id<ARRollerDelegate>)delegate;
|
|
||||||
- (void)getNextAd;
|
|
||||||
- (void)setDelegateToNil;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,845 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 45;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */; };
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */; };
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD735F0D9D9599002E5188 /* MainWindow.xib */; };
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; };
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; };
|
|
||||||
A62A0D91118F830F0013A568 /* AdWhirlAdapterEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A62A0D90118F830F0013A568 /* AdWhirlAdapterEvent.m */; };
|
|
||||||
A630FDE8110FB5C800D6740A /* BottomBannerController.m in Sources */ = {isa = PBXBuildFile; fileRef = A630FDE7110FB5C800D6740A /* BottomBannerController.m */; };
|
|
||||||
A630FDEC110FB6DB00D6740A /* BottomBannerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A630FDEB110FB6DB00D6740A /* BottomBannerController.xib */; };
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */ = {isa = PBXBuildFile; fileRef = A63C952210A8762800E81577 /* TableController.m */; };
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A63C952610A8CCFF00E81577 /* TableController.xib */; };
|
|
||||||
A66424BE110F68250045DB6E /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A66424BD110F68250045DB6E /* AudioToolbox.framework */; };
|
|
||||||
A66424D2110F68C10045DB6E /* AdWhirlAdapterMdotM.m in Sources */ = {isa = PBXBuildFile; fileRef = A66424D1110F68C10045DB6E /* AdWhirlAdapterMdotM.m */; };
|
|
||||||
A66A01AE11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.m in Sources */ = {isa = PBXBuildFile; fileRef = A66A01AD11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.m */; };
|
|
||||||
A66A01B611B6C7E1001DFCF0 /* libGoogleAds.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A66A01B511B6C7E1001DFCF0 /* libGoogleAds.a */; };
|
|
||||||
A66A01D411B6C7FC001DFCF0 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A66A01D311B6C7FC001DFCF0 /* AVFoundation.framework */; };
|
|
||||||
A678692C1121D44F008E55E8 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A678692B1121D44F008E55E8 /* MapKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
|
||||||
A678692E1121D44F008E55E8 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A678692D1121D44F008E55E8 /* MessageUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
|
||||||
A67869FE1121EF30008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869F41121EF30008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A67869FF1121EF30008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869F61121EF30008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A6786A001121EF30008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869F91121EF30008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A6786A011121EF30008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869FB1121EF30008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A6786A8C112226A7008E55E8 /* LocationController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6786A8B112226A7008E55E8 /* LocationController.m */; };
|
|
||||||
A6786A8E112226B2008E55E8 /* LocationController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6786A8D112226B2008E55E8 /* LocationController.xib */; };
|
|
||||||
A6A324FB11593718008301A2 /* libMMSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6A324F911593718008301A2 /* libMMSDK.a */; };
|
|
||||||
A6B0CF5F10ACBFB900B29A14 /* adwhirlsample_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B0CF5E10ACBFB900B29A14 /* adwhirlsample_icon.png */; };
|
|
||||||
A6BF6FEA114AFE07005C95B8 /* ModalViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6BF6FE9114AFE07005C95B8 /* ModalViewController.xib */; };
|
|
||||||
A6BF6FED114AFE19005C95B8 /* ModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6BF6FEC114AFE19005C95B8 /* ModalViewController.m */; };
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */; };
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */; };
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */; };
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */; };
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */; };
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */; };
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */; };
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */; };
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */; };
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */; };
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */; };
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */; };
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */; };
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */; };
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */; };
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */; };
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C5210A4C4470091B7F9 /* libz.dylib */; };
|
|
||||||
A6EC5C5E10A4C9900091B7F9 /* AdWhirlAdapterAdMob.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */; };
|
|
||||||
A6EC5C5F10A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */; };
|
|
||||||
A6EC5C6010A4C9900091B7F9 /* AdWhirlAdapterMillennial.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */; };
|
|
||||||
A6EC5C6110A4C9900091B7F9 /* AdWhirlAdapterQuattro.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */; };
|
|
||||||
A6EC5C6210A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */; };
|
|
||||||
A6EC5C9210A4D52E0091B7F9 /* libAdFrame-X86.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */; };
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */; };
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */; };
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */; };
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */; };
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */; };
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */; };
|
|
||||||
A6EC5DB710A507C00091B7F9 /* libAdFrame-ARM.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */; };
|
|
||||||
A6ED4965114F0307002C57E6 /* CDataScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4950114F0307002C57E6 /* CDataScanner.m */; };
|
|
||||||
A6ED4966114F0307002C57E6 /* CDataScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4953114F0307002C57E6 /* CDataScanner_Extensions.m */; };
|
|
||||||
A6ED4967114F0307002C57E6 /* NSCharacterSet_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4955114F0307002C57E6 /* NSCharacterSet_Extensions.m */; };
|
|
||||||
A6ED4968114F0307002C57E6 /* NSDictionary_JSONExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4957114F0307002C57E6 /* NSDictionary_JSONExtensions.m */; };
|
|
||||||
A6ED4969114F0307002C57E6 /* NSScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4959114F0307002C57E6 /* NSScanner_Extensions.m */; };
|
|
||||||
A6ED496A114F0307002C57E6 /* CJSONDataSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED495C114F0307002C57E6 /* CJSONDataSerializer.m */; };
|
|
||||||
A6ED496B114F0307002C57E6 /* CJSONDeserializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED495E114F0307002C57E6 /* CJSONDeserializer.m */; };
|
|
||||||
A6ED496C114F0307002C57E6 /* CJSONScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4960114F0307002C57E6 /* CJSONScanner.m */; };
|
|
||||||
A6ED496D114F0307002C57E6 /* CJSONSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4962114F0307002C57E6 /* CJSONSerializer.m */; };
|
|
||||||
A6ED496E114F0307002C57E6 /* CSerializedJSONData.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4964114F0307002C57E6 /* CSerializedJSONData.m */; };
|
|
||||||
A6ED4974114F03B3002C57E6 /* libAdMob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6ED4973114F03B3002C57E6 /* libAdMob.a */; };
|
|
||||||
A6F55CC31121CDDE0062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6F55CC11121CDDE0062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */; };
|
|
||||||
A6F55CC41121CDDE0062F368 /* libQuattroWireless3.1.0-os3.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6F55CC21121CDDE0062F368 /* libQuattroWireless3.1.0-os3.0.a */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_SampleAppDelegate.h; sourceTree = "<group>"; };
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlSDK2_SampleAppDelegate.m; sourceTree = "<group>"; };
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AdWhirlSDK2.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_Sample_Prefix.pch; sourceTree = "<group>"; };
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = "<group>"; };
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "AdWhirlSDK2_Sample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
|
|
||||||
A62A0D8F118F830F0013A568 /* AdWhirlAdapterEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterEvent.h; sourceTree = "<group>"; };
|
|
||||||
A62A0D90118F830F0013A568 /* AdWhirlAdapterEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterEvent.m; sourceTree = "<group>"; };
|
|
||||||
A630FDE6110FB5C800D6740A /* BottomBannerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomBannerController.h; sourceTree = "<group>"; };
|
|
||||||
A630FDE7110FB5C800D6740A /* BottomBannerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BottomBannerController.m; sourceTree = "<group>"; };
|
|
||||||
A630FDEB110FB6DB00D6740A /* BottomBannerController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BottomBannerController.xib; sourceTree = "<group>"; };
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableController.h; sourceTree = "<group>"; };
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableController.m; sourceTree = "<group>"; };
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TableController.xib; sourceTree = "<group>"; };
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleConstants.h; sourceTree = "<group>"; };
|
|
||||||
A66424BD110F68250045DB6E /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
|
||||||
A66424D0110F68C10045DB6E /* AdWhirlAdapterMdotM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMdotM.h; sourceTree = "<group>"; };
|
|
||||||
A66424D1110F68C10045DB6E /* AdWhirlAdapterMdotM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMdotM.m; sourceTree = "<group>"; };
|
|
||||||
A66A01AC11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGoogleAdSense.h; sourceTree = "<group>"; };
|
|
||||||
A66A01AD11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGoogleAdSense.m; sourceTree = "<group>"; };
|
|
||||||
A66A01B011B6C7E1001DFCF0 /* GADAdSenseAudioParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdSenseAudioParameters.h; sourceTree = "<group>"; };
|
|
||||||
A66A01B111B6C7E1001DFCF0 /* GADAdSenseParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdSenseParameters.h; sourceTree = "<group>"; };
|
|
||||||
A66A01B211B6C7E1001DFCF0 /* GADAdViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdViewController.h; sourceTree = "<group>"; };
|
|
||||||
A66A01B311B6C7E1001DFCF0 /* GADDoubleClickParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADDoubleClickParameters.h; sourceTree = "<group>"; };
|
|
||||||
A66A01B411B6C7E1001DFCF0 /* GADRequestError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADRequestError.h; sourceTree = "<group>"; };
|
|
||||||
A66A01B511B6C7E1001DFCF0 /* libGoogleAds.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAds.a; sourceTree = "<group>"; };
|
|
||||||
A66A01D311B6C7FC001DFCF0 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
|
||||||
A678692B1121D44F008E55E8 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
|
||||||
A678692D1121D44F008E55E8 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
|
|
||||||
A67869F41121EF30008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869F61121EF30008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869F91121EF30008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869FB1121EF30008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869FC1121EF30008E55E8 /* JTAdWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTAdWidget.h; sourceTree = "<group>"; };
|
|
||||||
A67869FD1121EF30008E55E8 /* JumpTapAppReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JumpTapAppReport.h; sourceTree = "<group>"; };
|
|
||||||
A6786A8A112226A7008E55E8 /* LocationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocationController.h; sourceTree = "<group>"; };
|
|
||||||
A6786A8B112226A7008E55E8 /* LocationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocationController.m; sourceTree = "<group>"; };
|
|
||||||
A6786A8D112226B2008E55E8 /* LocationController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LocationController.xib; sourceTree = "<group>"; };
|
|
||||||
A6953FC3116657DF00F099E5 /* MMAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6A324F911593718008301A2 /* libMMSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libMMSDK.a; sourceTree = "<group>"; };
|
|
||||||
A6B0CDC610AB38B700B29A14 /* QWAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAd.h; sourceTree = "<group>"; };
|
|
||||||
A6B0CDC710AB38B700B29A14 /* QWAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6B0CDC810AB38B700B29A14 /* QWTestMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWTestMode.h; sourceTree = "<group>"; };
|
|
||||||
A6B0CF5E10ACBFB900B29A14 /* adwhirlsample_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = adwhirlsample_icon.png; sourceTree = "<group>"; };
|
|
||||||
A6BF6FE9114AFE07005C95B8 /* ModalViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ModalViewController.xib; sourceTree = "<group>"; };
|
|
||||||
A6BF6FEB114AFE19005C95B8 /* ModalViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModalViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6BF6FEC114AFE19005C95B8 /* ModalViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModalViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkAdapter.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkRegistry.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkRegistry.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlCustomAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlCustomAdView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlError.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlError.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlLog.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlLog.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlView+.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AdWhirlWebBrowser.xib; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlWebBrowserController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlWebBrowserController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARRollerView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5410A4C9900091B7F9 /* AdWhirlAdapterAdMob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterAdMob.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterAdMob.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterJumpTap.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterJumpTap.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMillennial.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMillennial.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterQuattro.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterQuattro.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterVideoEgg.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterVideoEgg.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C6710A4C9F70091B7F9 /* AdMobDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdMobDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C6810A4C9F70091B7F9 /* AdMobView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdMobView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libAdFrame-ARM.a"; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8A10A4D52E0091B7F9 /* AdFrameConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameConstants.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8B10A4D52E0091B7F9 /* AdFrameView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libAdFrame-X86.a"; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterCustom.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterCustom.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGeneric.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGeneric.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkAdapter.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlAdNetworkAdapter+Helpers.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AdWhirlAdNetworkAdapter+Helpers.m"; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SimpleViewController.xib; sourceTree = "<group>"; };
|
|
||||||
A6ED494F114F0307002C57E6 /* CDataScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4950114F0307002C57E6 /* CDataScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4952114F0307002C57E6 /* CDataScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4953114F0307002C57E6 /* CDataScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4954114F0307002C57E6 /* NSCharacterSet_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4955114F0307002C57E6 /* NSCharacterSet_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4956114F0307002C57E6 /* NSDictionary_JSONExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDictionary_JSONExtensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4957114F0307002C57E6 /* NSDictionary_JSONExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDictionary_JSONExtensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4958114F0307002C57E6 /* NSScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4959114F0307002C57E6 /* NSScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED495B114F0307002C57E6 /* CJSONDataSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDataSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED495C114F0307002C57E6 /* CJSONDataSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDataSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED495D114F0307002C57E6 /* CJSONDeserializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDeserializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED495E114F0307002C57E6 /* CJSONDeserializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDeserializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED495F114F0307002C57E6 /* CJSONScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4960114F0307002C57E6 /* CJSONScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4961114F0307002C57E6 /* CJSONSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4962114F0307002C57E6 /* CJSONSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4963114F0307002C57E6 /* CSerializedJSONData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSerializedJSONData.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4964114F0307002C57E6 /* CSerializedJSONData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSerializedJSONData.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4973114F03B3002C57E6 /* libAdMob.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdMob.a; sourceTree = "<group>"; };
|
|
||||||
A6F55CC11121CDDE0062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless-Simulator3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
A6F55CC21121CDDE0062F368 /* libQuattroWireless3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */,
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */,
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */,
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */,
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */,
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */,
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */,
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */,
|
|
||||||
A6EC5C9210A4D52E0091B7F9 /* libAdFrame-X86.a in Frameworks */,
|
|
||||||
A6EC5DB710A507C00091B7F9 /* libAdFrame-ARM.a in Frameworks */,
|
|
||||||
A66424BE110F68250045DB6E /* AudioToolbox.framework in Frameworks */,
|
|
||||||
A6F55CC31121CDDE0062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a in Frameworks */,
|
|
||||||
A6F55CC41121CDDE0062F368 /* libQuattroWireless3.1.0-os3.0.a in Frameworks */,
|
|
||||||
A678692C1121D44F008E55E8 /* MapKit.framework in Frameworks */,
|
|
||||||
A678692E1121D44F008E55E8 /* MessageUI.framework in Frameworks */,
|
|
||||||
A67869FE1121EF30008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A67869FF1121EF30008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A6786A001121EF30008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A6786A011121EF30008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A6A324FB11593718008301A2 /* libMMSDK.a in Frameworks */,
|
|
||||||
A6ED4974114F03B3002C57E6 /* libAdMob.a in Frameworks */,
|
|
||||||
A66A01B611B6C7E1001DFCF0 /* libGoogleAds.a in Frameworks */,
|
|
||||||
A66A01D411B6C7FC001DFCF0 /* AVFoundation.framework in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6BF6FEB114AFE19005C95B8 /* ModalViewController.h */,
|
|
||||||
A6BF6FEC114AFE19005C95B8 /* ModalViewController.m */,
|
|
||||||
A6786A8A112226A7008E55E8 /* LocationController.h */,
|
|
||||||
A6786A8B112226A7008E55E8 /* LocationController.m */,
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */,
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */,
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */,
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */,
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */,
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */,
|
|
||||||
A630FDE6110FB5C800D6740A /* BottomBannerController.h */,
|
|
||||||
A630FDE7110FB5C800D6740A /* BottomBannerController.m */,
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */,
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */,
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */,
|
|
||||||
);
|
|
||||||
path = Classes;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */,
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */,
|
|
||||||
A6ED494E114F0307002C57E6 /* TouchJSON */,
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */,
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
|
||||||
);
|
|
||||||
name = CustomTemplate;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */,
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
);
|
|
||||||
name = "Other Sources";
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6BF6FE9114AFE07005C95B8 /* ModalViewController.xib */,
|
|
||||||
A6786A8D112226B2008E55E8 /* LocationController.xib */,
|
|
||||||
A6B0CF5E10ACBFB900B29A14 /* adwhirlsample_icon.png */,
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */,
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */,
|
|
||||||
A630FDEB110FB6DB00D6740A /* BottomBannerController.xib */,
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */,
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */,
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */,
|
|
||||||
);
|
|
||||||
name = Resources;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */,
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */,
|
|
||||||
A66A01D311B6C7FC001DFCF0 /* AVFoundation.framework */,
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */,
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */,
|
|
||||||
A66424BD110F68250045DB6E /* AudioToolbox.framework */,
|
|
||||||
A678692B1121D44F008E55E8 /* MapKit.framework */,
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */,
|
|
||||||
A678692D1121D44F008E55E8 /* MessageUI.framework */,
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */,
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */,
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */,
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A66A01AF11B6C7E1001DFCF0 /* GoogleAdSense */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A66A01B011B6C7E1001DFCF0 /* GADAdSenseAudioParameters.h */,
|
|
||||||
A66A01B111B6C7E1001DFCF0 /* GADAdSenseParameters.h */,
|
|
||||||
A66A01B211B6C7E1001DFCF0 /* GADAdViewController.h */,
|
|
||||||
A66A01B311B6C7E1001DFCF0 /* GADDoubleClickParameters.h */,
|
|
||||||
A66A01B411B6C7E1001DFCF0 /* GADRequestError.h */,
|
|
||||||
A66A01B511B6C7E1001DFCF0 /* libGoogleAds.a */,
|
|
||||||
);
|
|
||||||
name = GoogleAdSense;
|
|
||||||
path = ../AdNetworkLibs/GoogleAdSense;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A67869F11121EF30008E55E8 /* JumptapApi */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F21121EF30008E55E8 /* 2.2.1 */,
|
|
||||||
A67869F71121EF30008E55E8 /* 3.0 */,
|
|
||||||
A67869FC1121EF30008E55E8 /* JTAdWidget.h */,
|
|
||||||
A67869FD1121EF30008E55E8 /* JumpTapAppReport.h */,
|
|
||||||
);
|
|
||||||
name = JumptapApi;
|
|
||||||
path = ../AdNetworkLibs/JumptapApi;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A67869F21121EF30008E55E8 /* 2.2.1 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F31121EF30008E55E8 /* iphoneos */,
|
|
||||||
A67869F51121EF30008E55E8 /* iphonesimulator */,
|
|
||||||
);
|
|
||||||
path = 2.2.1;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869F31121EF30008E55E8 /* iphoneos */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F41121EF30008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphoneos;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869F51121EF30008E55E8 /* iphonesimulator */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F61121EF30008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphonesimulator;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869F71121EF30008E55E8 /* 3.0 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F81121EF30008E55E8 /* iphoneos */,
|
|
||||||
A67869FA1121EF30008E55E8 /* iphonesimulator */,
|
|
||||||
);
|
|
||||||
path = 3.0;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869F81121EF30008E55E8 /* iphoneos */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869F91121EF30008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphoneos;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869FA1121EF30008E55E8 /* iphonesimulator */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869FB1121EF30008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphonesimulator;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6B0CDC110AB38B700B29A14 /* QuattroWirelessLib */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6F55CC11121CDDE0062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */,
|
|
||||||
A6F55CC21121CDDE0062F368 /* libQuattroWireless3.1.0-os3.0.a */,
|
|
||||||
A6B0CDC610AB38B700B29A14 /* QWAd.h */,
|
|
||||||
A6B0CDC710AB38B700B29A14 /* QWAdView.h */,
|
|
||||||
A6B0CDC810AB38B700B29A14 /* QWTestMode.h */,
|
|
||||||
);
|
|
||||||
name = QuattroWirelessLib;
|
|
||||||
path = ../AdNetworkLibs/QuattroWirelessLib;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */,
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */,
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */,
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */,
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */,
|
|
||||||
);
|
|
||||||
name = AdWhirl;
|
|
||||||
path = ../AdWhirl;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A66A01AC11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.h */,
|
|
||||||
A66A01AD11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.m */,
|
|
||||||
A66424D0110F68C10045DB6E /* AdWhirlAdapterMdotM.h */,
|
|
||||||
A66424D1110F68C10045DB6E /* AdWhirlAdapterMdotM.m */,
|
|
||||||
A6EC5C5410A4C9900091B7F9 /* AdWhirlAdapterAdMob.h */,
|
|
||||||
A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */,
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */,
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */,
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */,
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */,
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */,
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */,
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */,
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */,
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */,
|
|
||||||
);
|
|
||||||
path = adapters;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A62A0D8F118F830F0013A568 /* AdWhirlAdapterEvent.h */,
|
|
||||||
A62A0D90118F830F0013A568 /* AdWhirlAdapterEvent.m */,
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */,
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */,
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */,
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */,
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */,
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */,
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */,
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */,
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */,
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */,
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */,
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */,
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */,
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */,
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */,
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */,
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */,
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */,
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */,
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */,
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */,
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */,
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */,
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */,
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */,
|
|
||||||
);
|
|
||||||
path = internal;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */,
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */,
|
|
||||||
);
|
|
||||||
path = legacy;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A66A01AF11B6C7E1001DFCF0 /* GoogleAdSense */,
|
|
||||||
A67869F11121EF30008E55E8 /* JumptapApi */,
|
|
||||||
A6EC5C6610A4C9F70091B7F9 /* AdMob */,
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */,
|
|
||||||
A6B0CDC110AB38B700B29A14 /* QuattroWirelessLib */,
|
|
||||||
A6EC5C8510A4D52E0091B7F9 /* VEAdFrames.1.0.4_2.2 */,
|
|
||||||
);
|
|
||||||
name = AdNetworkLibs;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C6610A4C9F70091B7F9 /* AdMob */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4973114F03B3002C57E6 /* libAdMob.a */,
|
|
||||||
A6EC5C6710A4C9F70091B7F9 /* AdMobDelegateProtocol.h */,
|
|
||||||
A6EC5C6810A4C9F70091B7F9 /* AdMobView.h */,
|
|
||||||
);
|
|
||||||
name = AdMob;
|
|
||||||
path = ../AdNetworkLibs/AdMob;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6953FC3116657DF00F099E5 /* MMAdView.h */,
|
|
||||||
A6A324F911593718008301A2 /* libMMSDK.a */,
|
|
||||||
);
|
|
||||||
name = MillennialMedia;
|
|
||||||
path = ../AdNetworkLibs/MillennialMedia;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C8510A4D52E0091B7F9 /* VEAdFrames.1.0.4_2.2 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8610A4D52E0091B7F9 /* ARM */,
|
|
||||||
A6EC5C8910A4D52E0091B7F9 /* include */,
|
|
||||||
A6EC5C8C10A4D52E0091B7F9 /* X86 */,
|
|
||||||
);
|
|
||||||
name = VEAdFrames.1.0.4_2.2;
|
|
||||||
path = ../AdNetworkLibs/VEAdFrames.1.0.4_2.2;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C8610A4D52E0091B7F9 /* ARM */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */,
|
|
||||||
);
|
|
||||||
path = ARM;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C8910A4D52E0091B7F9 /* include */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8A10A4D52E0091B7F9 /* AdFrameConstants.h */,
|
|
||||||
A6EC5C8B10A4D52E0091B7F9 /* AdFrameView.h */,
|
|
||||||
);
|
|
||||||
path = include;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C8C10A4D52E0091B7F9 /* X86 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */,
|
|
||||||
);
|
|
||||||
path = X86;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6ED494E114F0307002C57E6 /* TouchJSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED494F114F0307002C57E6 /* CDataScanner.h */,
|
|
||||||
A6ED4950114F0307002C57E6 /* CDataScanner.m */,
|
|
||||||
A6ED4951114F0307002C57E6 /* Extensions */,
|
|
||||||
A6ED495A114F0307002C57E6 /* JSON */,
|
|
||||||
);
|
|
||||||
name = TouchJSON;
|
|
||||||
path = ../TouchJSON;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6ED4951114F0307002C57E6 /* Extensions */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4952114F0307002C57E6 /* CDataScanner_Extensions.h */,
|
|
||||||
A6ED4953114F0307002C57E6 /* CDataScanner_Extensions.m */,
|
|
||||||
A6ED4954114F0307002C57E6 /* NSCharacterSet_Extensions.h */,
|
|
||||||
A6ED4955114F0307002C57E6 /* NSCharacterSet_Extensions.m */,
|
|
||||||
A6ED4956114F0307002C57E6 /* NSDictionary_JSONExtensions.h */,
|
|
||||||
A6ED4957114F0307002C57E6 /* NSDictionary_JSONExtensions.m */,
|
|
||||||
A6ED4958114F0307002C57E6 /* NSScanner_Extensions.h */,
|
|
||||||
A6ED4959114F0307002C57E6 /* NSScanner_Extensions.m */,
|
|
||||||
);
|
|
||||||
path = Extensions;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6ED495A114F0307002C57E6 /* JSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED495B114F0307002C57E6 /* CJSONDataSerializer.h */,
|
|
||||||
A6ED495C114F0307002C57E6 /* CJSONDataSerializer.m */,
|
|
||||||
A6ED495D114F0307002C57E6 /* CJSONDeserializer.h */,
|
|
||||||
A6ED495E114F0307002C57E6 /* CJSONDeserializer.m */,
|
|
||||||
A6ED495F114F0307002C57E6 /* CJSONScanner.h */,
|
|
||||||
A6ED4960114F0307002C57E6 /* CJSONScanner.m */,
|
|
||||||
A6ED4961114F0307002C57E6 /* CJSONSerializer.h */,
|
|
||||||
A6ED4962114F0307002C57E6 /* CJSONSerializer.m */,
|
|
||||||
A6ED4963114F0307002C57E6 /* CSerializedJSONData.h */,
|
|
||||||
A6ED4964114F0307002C57E6 /* CSerializedJSONData.m */,
|
|
||||||
);
|
|
||||||
path = JSON;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */;
|
|
||||||
buildPhases = (
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */,
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */,
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = AdWhirlSDK2_Sample;
|
|
||||||
productName = AdWhirlSDK2_Sample;
|
|
||||||
productReference = 1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample-2_1_1" */;
|
|
||||||
compatibilityVersion = "Xcode 3.1";
|
|
||||||
hasScannedForEncodings = 1;
|
|
||||||
knownRegions = (
|
|
||||||
English,
|
|
||||||
Japanese,
|
|
||||||
French,
|
|
||||||
German,
|
|
||||||
en,
|
|
||||||
);
|
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */,
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */,
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */,
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */,
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */,
|
|
||||||
A6B0CF5F10ACBFB900B29A14 /* adwhirlsample_icon.png in Resources */,
|
|
||||||
A630FDEC110FB6DB00D6740A /* BottomBannerController.xib in Resources */,
|
|
||||||
A6786A8E112226B2008E55E8 /* LocationController.xib in Resources */,
|
|
||||||
A6BF6FEA114AFE07005C95B8 /* ModalViewController.xib in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */,
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */,
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */,
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */,
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */,
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */,
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */,
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */,
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */,
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */,
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */,
|
|
||||||
A6EC5C5E10A4C9900091B7F9 /* AdWhirlAdapterAdMob.m in Sources */,
|
|
||||||
A6EC5C5F10A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m in Sources */,
|
|
||||||
A6EC5C6010A4C9900091B7F9 /* AdWhirlAdapterMillennial.m in Sources */,
|
|
||||||
A6EC5C6110A4C9900091B7F9 /* AdWhirlAdapterQuattro.m in Sources */,
|
|
||||||
A6EC5C6210A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m in Sources */,
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */,
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */,
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */,
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */,
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */,
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */,
|
|
||||||
A66424D2110F68C10045DB6E /* AdWhirlAdapterMdotM.m in Sources */,
|
|
||||||
A630FDE8110FB5C800D6740A /* BottomBannerController.m in Sources */,
|
|
||||||
A6786A8C112226A7008E55E8 /* LocationController.m in Sources */,
|
|
||||||
A6BF6FED114AFE19005C95B8 /* ModalViewController.m in Sources */,
|
|
||||||
A6ED4965114F0307002C57E6 /* CDataScanner.m in Sources */,
|
|
||||||
A6ED4966114F0307002C57E6 /* CDataScanner_Extensions.m in Sources */,
|
|
||||||
A6ED4967114F0307002C57E6 /* NSCharacterSet_Extensions.m in Sources */,
|
|
||||||
A6ED4968114F0307002C57E6 /* NSDictionary_JSONExtensions.m in Sources */,
|
|
||||||
A6ED4969114F0307002C57E6 /* NSScanner_Extensions.m in Sources */,
|
|
||||||
A6ED496A114F0307002C57E6 /* CJSONDataSerializer.m in Sources */,
|
|
||||||
A6ED496B114F0307002C57E6 /* CJSONDeserializer.m in Sources */,
|
|
||||||
A6ED496C114F0307002C57E6 /* CJSONScanner.m in Sources */,
|
|
||||||
A6ED496D114F0307002C57E6 /* CJSONSerializer.m in Sources */,
|
|
||||||
A6ED496E114F0307002C57E6 /* CSerializedJSONData.m in Sources */,
|
|
||||||
A62A0D91118F830F0013A568 /* AdWhirlAdapterEvent.m in Sources */,
|
|
||||||
A66A01AE11B6C7AC001DFCF0 /* AdWhirlAdapterGoogleAdSense.m in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/AdMob\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/ARM\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/X86\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi/$(IPHONEOS_DEPLOYMENT_TARGET)/$(PLATFORM_NAME)/\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/GoogleAdSense\"",
|
|
||||||
);
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = YES;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/AdMob\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/ARM\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/X86\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi/$(IPHONEOS_DEPLOYMENT_TARGET)/$(PLATFORM_NAME)/\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/GoogleAdSense\"",
|
|
||||||
);
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
C01FCF4F08A954540054247B /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "ADWHIRL_DEBUG=1";
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 2.2.1;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = iphoneos3.0;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
C01FCF5008A954540054247B /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 2.2.1;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = iphoneos3.0;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */,
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample-2_1_1" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
C01FCF4F08A954540054247B /* Debug */,
|
|
||||||
C01FCF5008A954540054247B /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
|
||||||
}
|
|
||||||
@@ -1,841 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 45;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */; };
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */; };
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD735F0D9D9599002E5188 /* MainWindow.xib */; };
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; };
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; };
|
|
||||||
A615C26A11B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.m in Sources */ = {isa = PBXBuildFile; fileRef = A615C26911B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.m */; };
|
|
||||||
A615C27811B5DEDD00E0C50F /* libGoogleAds.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A615C27711B5DEDD00E0C50F /* libGoogleAds.a */; };
|
|
||||||
A61E1BA711B6213700D0DD65 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A61E1BA611B6213700D0DD65 /* AVFoundation.framework */; };
|
|
||||||
A61F580C110F698700444E50 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A61F580B110F698700444E50 /* AudioToolbox.framework */; };
|
|
||||||
A62A0D36118F7D810013A568 /* AdWhirlAdapterEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */; };
|
|
||||||
A630FD61110FABAB00D6740A /* BottomBannerController.m in Sources */ = {isa = PBXBuildFile; fileRef = A630FD5F110FABAB00D6740A /* BottomBannerController.m */; };
|
|
||||||
A630FDAA110FB3E700D6740A /* BottomBannerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A630FDA9110FB3E700D6740A /* BottomBannerController.xib */; };
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */ = {isa = PBXBuildFile; fileRef = A63C952210A8762800E81577 /* TableController.m */; };
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A63C952610A8CCFF00E81577 /* TableController.xib */; };
|
|
||||||
A67869C61121E5C1008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869BC1121E5C1008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A67869C71121E5C1008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869BE1121E5C1008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A67869C81121E5C1008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869C11121E5C1008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A67869C91121E5C1008E55E8 /* libJumptapApi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A67869C31121E5C1008E55E8 /* libJumptapApi.a */; };
|
|
||||||
A690297D11458AE200F2E41D /* libAdMob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A690297C11458AE200F2E41D /* libAdMob.a */; };
|
|
||||||
A6A7997D1120D36A00A00FD8 /* LocationController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A7997C1120D36A00A00FD8 /* LocationController.m */; };
|
|
||||||
A6A7998D1120D69600A00FD8 /* LocationController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6A7998C1120D69600A00FD8 /* LocationController.xib */; };
|
|
||||||
A6B0CF2C10ACBD8900B29A14 /* adwhirlsample_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */; };
|
|
||||||
A6B9860E11484CF2001B2F2B /* AdWhirlAdapterAdMob.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */; };
|
|
||||||
A6B9860F11484CF3001B2F2B /* AdWhirlAdapterJumpTap.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */; };
|
|
||||||
A6B9861011484CF4001B2F2B /* AdWhirlAdapterMdotM.m in Sources */ = {isa = PBXBuildFile; fileRef = A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */; };
|
|
||||||
A6B9861111484CF4001B2F2B /* AdWhirlAdapterMillennial.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */; };
|
|
||||||
A6B9861211484CF5001B2F2B /* AdWhirlAdapterQuattro.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */; };
|
|
||||||
A6B9861311484CF6001B2F2B /* AdWhirlAdapterVideoEgg.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */; };
|
|
||||||
A6BF7002114B0F9A005C95B8 /* libMMSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6BF7001114B0F9A005C95B8 /* libMMSDK.a */; };
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */; };
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */; };
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */; };
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */; };
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */; };
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */; };
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */; };
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */; };
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */; };
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */; };
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */; };
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */; };
|
|
||||||
A6EC5BDC10A4C3150091B7F9 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */; };
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */; };
|
|
||||||
A6EC5BF310A4C3400091B7F9 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */; };
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */; };
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */; };
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */; };
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C5210A4C4470091B7F9 /* libz.dylib */; };
|
|
||||||
A6EC5C9210A4D52E0091B7F9 /* libAdFrame-X86.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */; };
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */; };
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */; };
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */; };
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */; };
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */; };
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */; };
|
|
||||||
A6EC5DB710A507C00091B7F9 /* libAdFrame-ARM.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */; };
|
|
||||||
A6ED4928114F0131002C57E6 /* CDataScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4913114F0131002C57E6 /* CDataScanner.m */; };
|
|
||||||
A6ED4929114F0131002C57E6 /* CDataScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */; };
|
|
||||||
A6ED492A114F0131002C57E6 /* NSCharacterSet_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */; };
|
|
||||||
A6ED492B114F0131002C57E6 /* NSDictionary_JSONExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */; };
|
|
||||||
A6ED492C114F0131002C57E6 /* NSScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */; };
|
|
||||||
A6ED492D114F0131002C57E6 /* CJSONDataSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */; };
|
|
||||||
A6ED492E114F0131002C57E6 /* CJSONDeserializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */; };
|
|
||||||
A6ED492F114F0131002C57E6 /* CJSONScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4923114F0131002C57E6 /* CJSONScanner.m */; };
|
|
||||||
A6ED4930114F0131002C57E6 /* CJSONSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4925114F0131002C57E6 /* CJSONSerializer.m */; };
|
|
||||||
A6ED4931114F0131002C57E6 /* CSerializedJSONData.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */; };
|
|
||||||
A6F55C6C1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6F55C6A1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */; };
|
|
||||||
A6F55C6D1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6F55C6B1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a */; };
|
|
||||||
A6F6CC7A1149A8B500DFFFEA /* ModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6F6CC781149A8B500DFFFEA /* ModalViewController.m */; };
|
|
||||||
A6F6CC7B1149A8B500DFFFEA /* ModalViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_SampleAppDelegate.h; sourceTree = "<group>"; };
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlSDK2_SampleAppDelegate.m; sourceTree = "<group>"; };
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AdWhirlSDK2.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_Sample_Prefix.pch; sourceTree = "<group>"; };
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = "<group>"; };
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "AdWhirlSDK2_Sample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
|
|
||||||
A615C26811B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGoogleAdSense.h; sourceTree = "<group>"; };
|
|
||||||
A615C26911B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGoogleAdSense.m; sourceTree = "<group>"; };
|
|
||||||
A615C27211B5DEDD00E0C50F /* GADAdSenseAudioParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdSenseAudioParameters.h; sourceTree = "<group>"; };
|
|
||||||
A615C27311B5DEDD00E0C50F /* GADAdSenseParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdSenseParameters.h; sourceTree = "<group>"; };
|
|
||||||
A615C27411B5DEDD00E0C50F /* GADAdViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADAdViewController.h; sourceTree = "<group>"; };
|
|
||||||
A615C27511B5DEDD00E0C50F /* GADDoubleClickParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADDoubleClickParameters.h; sourceTree = "<group>"; };
|
|
||||||
A615C27611B5DEDD00E0C50F /* GADRequestError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADRequestError.h; sourceTree = "<group>"; };
|
|
||||||
A615C27711B5DEDD00E0C50F /* libGoogleAds.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAds.a; sourceTree = "<group>"; };
|
|
||||||
A61E1BA611B6213700D0DD65 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
|
||||||
A61F580B110F698700444E50 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
|
||||||
A62A0D34118F7D810013A568 /* AdWhirlAdapterEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterEvent.h; sourceTree = "<group>"; };
|
|
||||||
A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterEvent.m; sourceTree = "<group>"; };
|
|
||||||
A630FD5E110FABAB00D6740A /* BottomBannerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomBannerController.h; sourceTree = "<group>"; };
|
|
||||||
A630FD5F110FABAB00D6740A /* BottomBannerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BottomBannerController.m; sourceTree = "<group>"; };
|
|
||||||
A630FDA9110FB3E700D6740A /* BottomBannerController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BottomBannerController.xib; sourceTree = "<group>"; };
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableController.h; sourceTree = "<group>"; };
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableController.m; sourceTree = "<group>"; };
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TableController.xib; sourceTree = "<group>"; };
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleConstants.h; sourceTree = "<group>"; };
|
|
||||||
A67869BC1121E5C1008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869BE1121E5C1008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869C11121E5C1008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869C31121E5C1008E55E8 /* libJumptapApi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libJumptapApi.a; sourceTree = "<group>"; };
|
|
||||||
A67869C41121E5C1008E55E8 /* JTAdWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTAdWidget.h; sourceTree = "<group>"; };
|
|
||||||
A67869C51121E5C1008E55E8 /* JumpTapAppReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JumpTapAppReport.h; sourceTree = "<group>"; };
|
|
||||||
A67F2A601162949700E0278D /* MMAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMAdView.h; sourceTree = "<group>"; };
|
|
||||||
A690297A11458AA000F2E41D /* AdMobDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdMobDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A690297B11458ABF00F2E41D /* AdMobView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdMobView.h; sourceTree = "<group>"; };
|
|
||||||
A690297C11458AE200F2E41D /* libAdMob.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdMob.a; sourceTree = "<group>"; };
|
|
||||||
A6A7997B1120D36A00A00FD8 /* LocationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocationController.h; sourceTree = "<group>"; };
|
|
||||||
A6A7997C1120D36A00A00FD8 /* LocationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocationController.m; sourceTree = "<group>"; };
|
|
||||||
A6A7998C1120D69600A00FD8 /* LocationController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LocationController.xib; sourceTree = "<group>"; };
|
|
||||||
A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = adwhirlsample_icon.png; sourceTree = "<group>"; };
|
|
||||||
A6BF7001114B0F9A005C95B8 /* libMMSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMMSDK.a; path = ../../third_party_libs/iphone/MillennialMedia/libMMSDK.a; sourceTree = SOURCE_ROOT; };
|
|
||||||
A6CB6843110E3B6800B24288 /* AdWhirlAdapterMdotM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMdotM.h; sourceTree = "<group>"; };
|
|
||||||
A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMdotM.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkAdapter.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkRegistry.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkRegistry.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlCustomAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlCustomAdView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlError.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlError.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlLog.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlLog.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlView+.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AdWhirlWebBrowser.xib; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlWebBrowserController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlWebBrowserController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARRollerView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5410A4C9900091B7F9 /* AdWhirlAdapterAdMob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterAdMob.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterAdMob.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterJumpTap.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterJumpTap.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMillennial.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMillennial.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterQuattro.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterQuattro.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterVideoEgg.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterVideoEgg.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7810A4D4500091B7F9 /* QWAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAd.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7910A4D4500091B7F9 /* QWAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7A10A4D4500091B7F9 /* QWTestMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWTestMode.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libAdFrame-ARM.a"; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8A10A4D52E0091B7F9 /* AdFrameConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameConstants.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8B10A4D52E0091B7F9 /* AdFrameView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libAdFrame-X86.a"; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterCustom.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterCustom.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGeneric.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGeneric.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkAdapter.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlAdNetworkAdapter+Helpers.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AdWhirlAdNetworkAdapter+Helpers.m"; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SimpleViewController.xib; sourceTree = "<group>"; };
|
|
||||||
A6ED4912114F0131002C57E6 /* CDataScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4913114F0131002C57E6 /* CDataScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4915114F0131002C57E6 /* CDataScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4917114F0131002C57E6 /* NSCharacterSet_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4919114F0131002C57E6 /* NSDictionary_JSONExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDictionary_JSONExtensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDictionary_JSONExtensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED491B114F0131002C57E6 /* NSScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED491E114F0131002C57E6 /* CJSONDataSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDataSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDataSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4920114F0131002C57E6 /* CJSONDeserializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDeserializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDeserializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4922114F0131002C57E6 /* CJSONScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4923114F0131002C57E6 /* CJSONScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4924114F0131002C57E6 /* CJSONSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4925114F0131002C57E6 /* CJSONSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4926114F0131002C57E6 /* CSerializedJSONData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSerializedJSONData.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSerializedJSONData.m; sourceTree = "<group>"; };
|
|
||||||
A6F55C6A1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless-Simulator3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
A6F55C6B1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
A6F6CC771149A8B500DFFFEA /* ModalViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModalViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6F6CC781149A8B500DFFFEA /* ModalViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModalViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ModalViewController.xib; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */,
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */,
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */,
|
|
||||||
A6EC5BDC10A4C3150091B7F9 /* MapKit.framework in Frameworks */,
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */,
|
|
||||||
A6EC5BF310A4C3400091B7F9 /* MessageUI.framework in Frameworks */,
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */,
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */,
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */,
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */,
|
|
||||||
A6EC5C9210A4D52E0091B7F9 /* libAdFrame-X86.a in Frameworks */,
|
|
||||||
A6EC5DB710A507C00091B7F9 /* libAdFrame-ARM.a in Frameworks */,
|
|
||||||
A61F580C110F698700444E50 /* AudioToolbox.framework in Frameworks */,
|
|
||||||
A6F55C6C1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a in Frameworks */,
|
|
||||||
A6F55C6D1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a in Frameworks */,
|
|
||||||
A67869C61121E5C1008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A67869C71121E5C1008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A67869C81121E5C1008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A67869C91121E5C1008E55E8 /* libJumptapApi.a in Frameworks */,
|
|
||||||
A6BF7002114B0F9A005C95B8 /* libMMSDK.a in Frameworks */,
|
|
||||||
A690297D11458AE200F2E41D /* libAdMob.a in Frameworks */,
|
|
||||||
A615C27811B5DEDD00E0C50F /* libGoogleAds.a in Frameworks */,
|
|
||||||
A61E1BA711B6213700D0DD65 /* AVFoundation.framework in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */,
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */,
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */,
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */,
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */,
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */,
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */,
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */,
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */,
|
|
||||||
A630FD5E110FABAB00D6740A /* BottomBannerController.h */,
|
|
||||||
A630FD5F110FABAB00D6740A /* BottomBannerController.m */,
|
|
||||||
A6A7997B1120D36A00A00FD8 /* LocationController.h */,
|
|
||||||
A6A7997C1120D36A00A00FD8 /* LocationController.m */,
|
|
||||||
A6F6CC771149A8B500DFFFEA /* ModalViewController.h */,
|
|
||||||
A6F6CC781149A8B500DFFFEA /* ModalViewController.m */,
|
|
||||||
);
|
|
||||||
path = Classes;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */,
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */,
|
|
||||||
A6ED4911114F0131002C57E6 /* TouchJSON */,
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */,
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
|
||||||
);
|
|
||||||
name = CustomTemplate;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */,
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
);
|
|
||||||
name = "Other Sources";
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6A7998C1120D69600A00FD8 /* LocationController.xib */,
|
|
||||||
A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */,
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */,
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */,
|
|
||||||
A630FDA9110FB3E700D6740A /* BottomBannerController.xib */,
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */,
|
|
||||||
A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */,
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */,
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */,
|
|
||||||
);
|
|
||||||
name = Resources;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */,
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */,
|
|
||||||
A61E1BA611B6213700D0DD65 /* AVFoundation.framework */,
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */,
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */,
|
|
||||||
A61F580B110F698700444E50 /* AudioToolbox.framework */,
|
|
||||||
A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */,
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */,
|
|
||||||
A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */,
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */,
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */,
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */,
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A615C27111B5DEDD00E0C50F /* GoogleAdSense */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A615C27211B5DEDD00E0C50F /* GADAdSenseAudioParameters.h */,
|
|
||||||
A615C27311B5DEDD00E0C50F /* GADAdSenseParameters.h */,
|
|
||||||
A615C27411B5DEDD00E0C50F /* GADAdViewController.h */,
|
|
||||||
A615C27511B5DEDD00E0C50F /* GADDoubleClickParameters.h */,
|
|
||||||
A615C27611B5DEDD00E0C50F /* GADRequestError.h */,
|
|
||||||
A615C27711B5DEDD00E0C50F /* libGoogleAds.a */,
|
|
||||||
);
|
|
||||||
name = GoogleAdSense;
|
|
||||||
path = ../AdNetworkLibs/GoogleAdSense;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A67869B91121E5C1008E55E8 /* JumptapApi */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869BA1121E5C1008E55E8 /* 2.2.1 */,
|
|
||||||
A67869BF1121E5C1008E55E8 /* 3.0 */,
|
|
||||||
A67869C41121E5C1008E55E8 /* JTAdWidget.h */,
|
|
||||||
A67869C51121E5C1008E55E8 /* JumpTapAppReport.h */,
|
|
||||||
);
|
|
||||||
name = JumptapApi;
|
|
||||||
path = ../AdNetworkLibs/JumptapApi;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A67869BA1121E5C1008E55E8 /* 2.2.1 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869BB1121E5C1008E55E8 /* iphoneos */,
|
|
||||||
A67869BD1121E5C1008E55E8 /* iphonesimulator */,
|
|
||||||
);
|
|
||||||
path = 2.2.1;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869BB1121E5C1008E55E8 /* iphoneos */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869BC1121E5C1008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphoneos;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869BD1121E5C1008E55E8 /* iphonesimulator */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869BE1121E5C1008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphonesimulator;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869BF1121E5C1008E55E8 /* 3.0 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869C01121E5C1008E55E8 /* iphoneos */,
|
|
||||||
A67869C21121E5C1008E55E8 /* iphonesimulator */,
|
|
||||||
);
|
|
||||||
path = 3.0;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869C01121E5C1008E55E8 /* iphoneos */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869C11121E5C1008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphoneos;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A67869C21121E5C1008E55E8 /* iphonesimulator */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67869C31121E5C1008E55E8 /* libJumptapApi.a */,
|
|
||||||
);
|
|
||||||
path = iphonesimulator;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */,
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */,
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */,
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */,
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */,
|
|
||||||
);
|
|
||||||
name = AdWhirl;
|
|
||||||
path = ../AdWhirl;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A615C26811B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.h */,
|
|
||||||
A615C26911B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.m */,
|
|
||||||
A6CB6843110E3B6800B24288 /* AdWhirlAdapterMdotM.h */,
|
|
||||||
A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */,
|
|
||||||
A6EC5C5410A4C9900091B7F9 /* AdWhirlAdapterAdMob.h */,
|
|
||||||
A6EC5C5510A4C9900091B7F9 /* AdWhirlAdapterAdMob.m */,
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */,
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */,
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */,
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */,
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */,
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */,
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */,
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */,
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */,
|
|
||||||
);
|
|
||||||
path = adapters;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A62A0D34118F7D810013A568 /* AdWhirlAdapterEvent.h */,
|
|
||||||
A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */,
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */,
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */,
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */,
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */,
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */,
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */,
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */,
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */,
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */,
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */,
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */,
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */,
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */,
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */,
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */,
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */,
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */,
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */,
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */,
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */,
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */,
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */,
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */,
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */,
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */,
|
|
||||||
);
|
|
||||||
path = internal;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */,
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */,
|
|
||||||
);
|
|
||||||
path = legacy;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C6610A4C9F70091B7F9 /* AdMob */,
|
|
||||||
A615C27111B5DEDD00E0C50F /* GoogleAdSense */,
|
|
||||||
A67869B91121E5C1008E55E8 /* JumptapApi */,
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */,
|
|
||||||
A6EC5C7510A4D4500091B7F9 /* QuattroWirelessLib */,
|
|
||||||
A6EC5C8510A4D52E0091B7F9 /* VEAdFrames.1.0.4_2.2 */,
|
|
||||||
);
|
|
||||||
name = AdNetworkLibs;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C6610A4C9F70091B7F9 /* AdMob */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A690297C11458AE200F2E41D /* libAdMob.a */,
|
|
||||||
A690297A11458AA000F2E41D /* AdMobDelegateProtocol.h */,
|
|
||||||
A690297B11458ABF00F2E41D /* AdMobView.h */,
|
|
||||||
);
|
|
||||||
name = AdMob;
|
|
||||||
path = ../AdNetworkLibs/AdMob;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C7510A4D4500091B7F9 /* QuattroWirelessLib */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6F55C6A1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */,
|
|
||||||
A6F55C6B1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a */,
|
|
||||||
A6EC5C7810A4D4500091B7F9 /* QWAd.h */,
|
|
||||||
A6EC5C7910A4D4500091B7F9 /* QWAdView.h */,
|
|
||||||
A6EC5C7A10A4D4500091B7F9 /* QWTestMode.h */,
|
|
||||||
);
|
|
||||||
name = QuattroWirelessLib;
|
|
||||||
path = ../AdNetworkLibs/QuattroWirelessLib;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67F2A601162949700E0278D /* MMAdView.h */,
|
|
||||||
A6BF7001114B0F9A005C95B8 /* libMMSDK.a */,
|
|
||||||
);
|
|
||||||
name = MillennialMedia;
|
|
||||||
path = ../AdNetworkLibs/MillennialMedia;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C8510A4D52E0091B7F9 /* VEAdFrames.1.0.4_2.2 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8610A4D52E0091B7F9 /* ARM */,
|
|
||||||
A6EC5C8910A4D52E0091B7F9 /* include */,
|
|
||||||
A6EC5C8C10A4D52E0091B7F9 /* X86 */,
|
|
||||||
);
|
|
||||||
name = VEAdFrames.1.0.4_2.2;
|
|
||||||
path = ../AdNetworkLibs/VEAdFrames.1.0.4_2.2;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C8610A4D52E0091B7F9 /* ARM */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8810A4D52E0091B7F9 /* libAdFrame-ARM.a */,
|
|
||||||
);
|
|
||||||
path = ARM;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C8910A4D52E0091B7F9 /* include */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8A10A4D52E0091B7F9 /* AdFrameConstants.h */,
|
|
||||||
A6EC5C8B10A4D52E0091B7F9 /* AdFrameView.h */,
|
|
||||||
);
|
|
||||||
path = include;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C8C10A4D52E0091B7F9 /* X86 */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5C8E10A4D52E0091B7F9 /* libAdFrame-X86.a */,
|
|
||||||
);
|
|
||||||
path = X86;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6ED4911114F0131002C57E6 /* TouchJSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4912114F0131002C57E6 /* CDataScanner.h */,
|
|
||||||
A6ED4913114F0131002C57E6 /* CDataScanner.m */,
|
|
||||||
A6ED4914114F0131002C57E6 /* Extensions */,
|
|
||||||
A6ED491D114F0131002C57E6 /* JSON */,
|
|
||||||
);
|
|
||||||
name = TouchJSON;
|
|
||||||
path = ../TouchJSON;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6ED4914114F0131002C57E6 /* Extensions */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4915114F0131002C57E6 /* CDataScanner_Extensions.h */,
|
|
||||||
A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */,
|
|
||||||
A6ED4917114F0131002C57E6 /* NSCharacterSet_Extensions.h */,
|
|
||||||
A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */,
|
|
||||||
A6ED4919114F0131002C57E6 /* NSDictionary_JSONExtensions.h */,
|
|
||||||
A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */,
|
|
||||||
A6ED491B114F0131002C57E6 /* NSScanner_Extensions.h */,
|
|
||||||
A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */,
|
|
||||||
);
|
|
||||||
path = Extensions;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6ED491D114F0131002C57E6 /* JSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED491E114F0131002C57E6 /* CJSONDataSerializer.h */,
|
|
||||||
A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */,
|
|
||||||
A6ED4920114F0131002C57E6 /* CJSONDeserializer.h */,
|
|
||||||
A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */,
|
|
||||||
A6ED4922114F0131002C57E6 /* CJSONScanner.h */,
|
|
||||||
A6ED4923114F0131002C57E6 /* CJSONScanner.m */,
|
|
||||||
A6ED4924114F0131002C57E6 /* CJSONSerializer.h */,
|
|
||||||
A6ED4925114F0131002C57E6 /* CJSONSerializer.m */,
|
|
||||||
A6ED4926114F0131002C57E6 /* CSerializedJSONData.h */,
|
|
||||||
A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */,
|
|
||||||
);
|
|
||||||
path = JSON;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */;
|
|
||||||
buildPhases = (
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */,
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */,
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = AdWhirlSDK2_Sample;
|
|
||||||
productName = AdWhirlSDK2_Sample;
|
|
||||||
productReference = 1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample-3_x" */;
|
|
||||||
compatibilityVersion = "Xcode 3.1";
|
|
||||||
hasScannedForEncodings = 1;
|
|
||||||
knownRegions = (
|
|
||||||
English,
|
|
||||||
Japanese,
|
|
||||||
French,
|
|
||||||
German,
|
|
||||||
en,
|
|
||||||
);
|
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */,
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */,
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */,
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */,
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */,
|
|
||||||
A6B0CF2C10ACBD8900B29A14 /* adwhirlsample_icon.png in Resources */,
|
|
||||||
A630FDAA110FB3E700D6740A /* BottomBannerController.xib in Resources */,
|
|
||||||
A6A7998D1120D69600A00FD8 /* LocationController.xib in Resources */,
|
|
||||||
A6F6CC7B1149A8B500DFFFEA /* ModalViewController.xib in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */,
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */,
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */,
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */,
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */,
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */,
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */,
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */,
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */,
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */,
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */,
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */,
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */,
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */,
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */,
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */,
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */,
|
|
||||||
A630FD61110FABAB00D6740A /* BottomBannerController.m in Sources */,
|
|
||||||
A6A7997D1120D36A00A00FD8 /* LocationController.m in Sources */,
|
|
||||||
A6B9860E11484CF2001B2F2B /* AdWhirlAdapterAdMob.m in Sources */,
|
|
||||||
A6B9860F11484CF3001B2F2B /* AdWhirlAdapterJumpTap.m in Sources */,
|
|
||||||
A6B9861011484CF4001B2F2B /* AdWhirlAdapterMdotM.m in Sources */,
|
|
||||||
A6B9861111484CF4001B2F2B /* AdWhirlAdapterMillennial.m in Sources */,
|
|
||||||
A6B9861211484CF5001B2F2B /* AdWhirlAdapterQuattro.m in Sources */,
|
|
||||||
A6B9861311484CF6001B2F2B /* AdWhirlAdapterVideoEgg.m in Sources */,
|
|
||||||
A6F6CC7A1149A8B500DFFFEA /* ModalViewController.m in Sources */,
|
|
||||||
A6ED4928114F0131002C57E6 /* CDataScanner.m in Sources */,
|
|
||||||
A6ED4929114F0131002C57E6 /* CDataScanner_Extensions.m in Sources */,
|
|
||||||
A6ED492A114F0131002C57E6 /* NSCharacterSet_Extensions.m in Sources */,
|
|
||||||
A6ED492B114F0131002C57E6 /* NSDictionary_JSONExtensions.m in Sources */,
|
|
||||||
A6ED492C114F0131002C57E6 /* NSScanner_Extensions.m in Sources */,
|
|
||||||
A6ED492D114F0131002C57E6 /* CJSONDataSerializer.m in Sources */,
|
|
||||||
A6ED492E114F0131002C57E6 /* CJSONDeserializer.m in Sources */,
|
|
||||||
A6ED492F114F0131002C57E6 /* CJSONScanner.m in Sources */,
|
|
||||||
A6ED4930114F0131002C57E6 /* CJSONSerializer.m in Sources */,
|
|
||||||
A6ED4931114F0131002C57E6 /* CSerializedJSONData.m in Sources */,
|
|
||||||
A62A0D36118F7D810013A568 /* AdWhirlAdapterEvent.m in Sources */,
|
|
||||||
A615C26A11B5DD3F00E0C50F /* AdWhirlAdapterGoogleAdSense.m in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/AdMob\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/ARM\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/X86\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi/$(IPHONEOS_DEPLOYMENT_TARGET)/$(PLATFORM_NAME)\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/GoogleAdSense\"",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = YES;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/AdMob\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/ARM\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames.1.0.4_2.2/X86\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi/$(IPHONEOS_DEPLOYMENT_TARGET)/$(PLATFORM_NAME)\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/GoogleAdSense\"",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
C01FCF4F08A954540054247B /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "ADWHIRL_DEBUG=1";
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
OTHER_LDFLAGS = "";
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = iphoneos3.0;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
C01FCF5008A954540054247B /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
OTHER_LDFLAGS = "";
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = iphoneos3.0;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */,
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample-3_x" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
C01FCF4F08A954540054247B /* Debug */,
|
|
||||||
C01FCF5008A954540054247B /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>UIInterfaceOrientation</key>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleDisplayName</key>
|
|
||||||
<string>${PRODUCT_NAME}</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>${EXECUTABLE_NAME}</string>
|
|
||||||
<key>CFBundleIconFile</key>
|
|
||||||
<string>adwhirlsample_icon.png</string>
|
|
||||||
<key>CFBundleIconFiles</key>
|
|
||||||
<array>
|
|
||||||
<string>adwhirlsample_icon.png</string>
|
|
||||||
<string>adwhirlsample_icon@2x.png</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.adwhirl.${PRODUCT_NAME:rfc1034identifier}</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>${PRODUCT_NAME}</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>LSRequiresIPhoneOS</key>
|
|
||||||
<true/>
|
|
||||||
<key>NSMainNibFile</key>
|
|
||||||
<string>MainWindow</string>
|
|
||||||
<key>MMediaLocationAware</key>
|
|
||||||
<false/>
|
|
||||||
<key>MMediaDefaultEmbedWebView</key>
|
|
||||||
<true/>
|
|
||||||
<key>UIPrerenderedIcon</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,948 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 46;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
1B183AA81211C7C60026647E /* UIColor+AdWhirlConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B183AA71211C7C60026647E /* UIColor+AdWhirlConfig.m */; };
|
|
||||||
1B3FC6ED11EB954700C890D2 /* libGreystripeSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B3FC6EC11EB954700C890D2 /* libGreystripeSDK.a */; };
|
|
||||||
1B42692511FE258400910F21 /* jtUniversalLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B42692411FE258400910F21 /* jtUniversalLib.a */; };
|
|
||||||
1B42692611FE25A500910F21 /* AdWhirlAdapterJumpTap.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */; };
|
|
||||||
1B6898DD120C916A0080EAC1 /* AdWhirlClassWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B6898DC120C916A0080EAC1 /* AdWhirlClassWrapper.m */; };
|
|
||||||
1B6CE7CA121498DA00E44A28 /* AdWhirlConfigStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B6CE7C9121498DA00E44A28 /* AdWhirlConfigStore.m */; };
|
|
||||||
1B6CE8921214AA6A00E44A28 /* AWNetworkReachabilityWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B6CE8911214AA6A00E44A28 /* AWNetworkReachabilityWrapper.m */; };
|
|
||||||
1B7CC26C11EFB400004F4937 /* AdWhirlAdapterMillennial.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */; };
|
|
||||||
1B7CC26D11EFB403004F4937 /* AdWhirlAdapterVideoEgg.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */; };
|
|
||||||
1B7CC27411EFB42C004F4937 /* libAdFrame.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B7CC27311EFB42C004F4937 /* libAdFrame.a */; };
|
|
||||||
1B7CC27511EFB44C004F4937 /* libMMSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6BF7001114B0F9A005C95B8 /* libMMSDK.a */; };
|
|
||||||
1B8B5F0F11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B8B5F0E11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.m */; };
|
|
||||||
1B8B5F1811E7EEDF002762E3 /* libZestADZ.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B8B5F1511E7EEDF002762E3 /* libZestADZ.a */; };
|
|
||||||
1B91B4B71255596900C665F7 /* AdWhirlAdapterInMobi.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B91B4B61255596900C665F7 /* AdWhirlAdapterInMobi.m */; };
|
|
||||||
1BF8DFD111EB855100C2284D /* AdWhirlAdapterGreystripe.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BF8DFD011EB855100C2284D /* AdWhirlAdapterGreystripe.m */; };
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */; };
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
|
|
||||||
204AE1CF141984A50043AA76 /* libNexageSDK-Lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 204AE1CE141984A50043AA76 /* libNexageSDK-Lite.a */; };
|
|
||||||
20840DAA13CE56780029064C /* libInMobi_iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 20840DA913CE56780029064C /* libInMobi_iOS.a */; };
|
|
||||||
20B2547313A03F8300F33931 /* AdWhirlAdapterNexage.m in Sources */ = {isa = PBXBuildFile; fileRef = 20B2547213A03F8300F33931 /* AdWhirlAdapterNexage.m */; };
|
|
||||||
20F28CE013B00F87006C724A /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20F28CDF13B00F87006C724A /* CFNetwork.framework */; };
|
|
||||||
20F28CE213B00FD5006C724A /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20F28CE113B00FD5006C724A /* MobileCoreServices.framework */; };
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */; };
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD735F0D9D9599002E5188 /* MainWindow.xib */; };
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C286E00D94DF7D0034E888 /* RootViewController.m */; };
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; };
|
|
||||||
6B42360512EA0D41001F5395 /* AdWhirlAdapterOneRiot.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B42360412EA0D41001F5395 /* AdWhirlAdapterOneRiot.m */; };
|
|
||||||
6B42369012EA29EB001F5395 /* libOneRiot.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B42368F12EA29EB001F5395 /* libOneRiot.a */; };
|
|
||||||
6B629D491332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B629D481332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.m */; };
|
|
||||||
6B629D5E1332BC21000D019C /* libGoogleAdMobAds.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B629D5D1332BC21000D019C /* libGoogleAdMobAds.a */; };
|
|
||||||
A6051FF011C7DF6600451D6F /* AdWhirlAdapterIAd.m in Sources */ = {isa = PBXBuildFile; fileRef = A6051FEF11C7DF6600451D6F /* AdWhirlAdapterIAd.m */; };
|
|
||||||
A605200A11C7DF8400451D6F /* iAd.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A605200911C7DF8400451D6F /* iAd.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
|
||||||
A605201311C7E20400451D6F /* AdWhirlAdapterMdotM.m in Sources */ = {isa = PBXBuildFile; fileRef = A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */; };
|
|
||||||
A61E1BA711B6213700D0DD65 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A61E1BA611B6213700D0DD65 /* AVFoundation.framework */; };
|
|
||||||
A61F580C110F698700444E50 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A61F580B110F698700444E50 /* AudioToolbox.framework */; };
|
|
||||||
A62A0D36118F7D810013A568 /* AdWhirlAdapterEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */; };
|
|
||||||
A630FD61110FABAB00D6740A /* BottomBannerController.m in Sources */ = {isa = PBXBuildFile; fileRef = A630FD5F110FABAB00D6740A /* BottomBannerController.m */; };
|
|
||||||
A630FDAA110FB3E700D6740A /* BottomBannerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A630FDA9110FB3E700D6740A /* BottomBannerController.xib */; };
|
|
||||||
A6392A3211C9777500459FD4 /* adwhirlsample_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A6392A3111C9777500459FD4 /* adwhirlsample_icon@2x.png */; };
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */ = {isa = PBXBuildFile; fileRef = A63C952210A8762800E81577 /* TableController.m */; };
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A63C952610A8CCFF00E81577 /* TableController.xib */; };
|
|
||||||
A6A7997D1120D36A00A00FD8 /* LocationController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6A7997C1120D36A00A00FD8 /* LocationController.m */; };
|
|
||||||
A6A7998D1120D69600A00FD8 /* LocationController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6A7998C1120D69600A00FD8 /* LocationController.xib */; };
|
|
||||||
A6B0CF2C10ACBD8900B29A14 /* adwhirlsample_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */; };
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */; };
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */; };
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */; };
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */; };
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */; };
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */; };
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */; };
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */; };
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */; };
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */; };
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */; };
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */; };
|
|
||||||
A6EC5BDC10A4C3150091B7F9 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */; };
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */; };
|
|
||||||
A6EC5BF310A4C3400091B7F9 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */; };
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */; };
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */; };
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */; };
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EC5C5210A4C4470091B7F9 /* libz.dylib */; };
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */; };
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */; };
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */; };
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */; };
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */; };
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */; };
|
|
||||||
A6ED4928114F0131002C57E6 /* CDataScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4913114F0131002C57E6 /* CDataScanner.m */; };
|
|
||||||
A6ED4929114F0131002C57E6 /* CDataScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */; };
|
|
||||||
A6ED492A114F0131002C57E6 /* NSCharacterSet_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */; };
|
|
||||||
A6ED492B114F0131002C57E6 /* NSDictionary_JSONExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */; };
|
|
||||||
A6ED492C114F0131002C57E6 /* NSScanner_Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */; };
|
|
||||||
A6ED492D114F0131002C57E6 /* CJSONDataSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */; };
|
|
||||||
A6ED492E114F0131002C57E6 /* CJSONDeserializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */; };
|
|
||||||
A6ED492F114F0131002C57E6 /* CJSONScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4923114F0131002C57E6 /* CJSONScanner.m */; };
|
|
||||||
A6ED4930114F0131002C57E6 /* CJSONSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4925114F0131002C57E6 /* CJSONSerializer.m */; };
|
|
||||||
A6ED4931114F0131002C57E6 /* CSerializedJSONData.m in Sources */ = {isa = PBXBuildFile; fileRef = A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */; };
|
|
||||||
A6F6CC7A1149A8B500DFFFEA /* ModalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6F6CC781149A8B500DFFFEA /* ModalViewController.m */; };
|
|
||||||
A6F6CC7B1149A8B500DFFFEA /* ModalViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
1B183AA61211C7C60026647E /* UIColor+AdWhirlConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+AdWhirlConfig.h"; sourceTree = "<group>"; };
|
|
||||||
1B183AA71211C7C60026647E /* UIColor+AdWhirlConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+AdWhirlConfig.m"; sourceTree = "<group>"; };
|
|
||||||
1B1973FD12415A1B0083FB36 /* AWNetworkReachabilityDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWNetworkReachabilityDelegate.h; sourceTree = "<group>"; };
|
|
||||||
1B3FC6E911EB954700C890D2 /* GreystripeDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GreystripeDelegate.h; sourceTree = "<group>"; };
|
|
||||||
1B3FC6EA11EB954700C890D2 /* GSAdEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSAdEngine.h; sourceTree = "<group>"; };
|
|
||||||
1B3FC6EB11EB954700C890D2 /* GSAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSAdView.h; sourceTree = "<group>"; };
|
|
||||||
1B3FC6EC11EB954700C890D2 /* libGreystripeSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGreystripeSDK.a; sourceTree = "<group>"; };
|
|
||||||
1B42692411FE258400910F21 /* jtUniversalLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = jtUniversalLib.a; sourceTree = "<group>"; };
|
|
||||||
1B6898DB120C916A0080EAC1 /* AdWhirlClassWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlClassWrapper.h; sourceTree = "<group>"; };
|
|
||||||
1B6898DC120C916A0080EAC1 /* AdWhirlClassWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlClassWrapper.m; sourceTree = "<group>"; };
|
|
||||||
1B6CE7C8121498DA00E44A28 /* AdWhirlConfigStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlConfigStore.h; sourceTree = "<group>"; };
|
|
||||||
1B6CE7C9121498DA00E44A28 /* AdWhirlConfigStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlConfigStore.m; sourceTree = "<group>"; };
|
|
||||||
1B6CE8901214AA6A00E44A28 /* AWNetworkReachabilityWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWNetworkReachabilityWrapper.h; sourceTree = "<group>"; };
|
|
||||||
1B6CE8911214AA6A00E44A28 /* AWNetworkReachabilityWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWNetworkReachabilityWrapper.m; sourceTree = "<group>"; };
|
|
||||||
1B7CC27111EFB42C004F4937 /* AdFrameConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameConstants.h; sourceTree = "<group>"; };
|
|
||||||
1B7CC27211EFB42C004F4937 /* AdFrameView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdFrameView.h; sourceTree = "<group>"; };
|
|
||||||
1B7CC27311EFB42C004F4937 /* libAdFrame.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libAdFrame.a; sourceTree = "<group>"; };
|
|
||||||
1B8B5F0D11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterZestADZ.h; sourceTree = "<group>"; };
|
|
||||||
1B8B5F0E11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterZestADZ.m; sourceTree = "<group>"; };
|
|
||||||
1B8B5F1511E7EEDF002762E3 /* libZestADZ.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libZestADZ.a; sourceTree = "<group>"; };
|
|
||||||
1B8B5F1611E7EEDF002762E3 /* ZestadzDelegateProtocal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZestadzDelegateProtocal.h; sourceTree = "<group>"; };
|
|
||||||
1B8B5F1711E7EEDF002762E3 /* ZestadzView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZestadzView.h; sourceTree = "<group>"; };
|
|
||||||
1B91B4B51255596900C665F7 /* AdWhirlAdapterInMobi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterInMobi.h; sourceTree = "<group>"; };
|
|
||||||
1B91B4B61255596900C665F7 /* AdWhirlAdapterInMobi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterInMobi.m; sourceTree = "<group>"; };
|
|
||||||
1BF8DFCF11EB855100C2284D /* AdWhirlAdapterGreystripe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGreystripe.h; sourceTree = "<group>"; };
|
|
||||||
1BF8DFD011EB855100C2284D /* AdWhirlAdapterGreystripe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGreystripe.m; sourceTree = "<group>"; };
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_SampleAppDelegate.h; sourceTree = "<group>"; };
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlSDK2_SampleAppDelegate.m; sourceTree = "<group>"; };
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AdWhirlSDK2.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
|
||||||
204AE1CE141984A50043AA76 /* libNexageSDK-Lite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libNexageSDK-Lite.a"; sourceTree = "<group>"; };
|
|
||||||
20840DA913CE56780029064C /* libInMobi_iOS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libInMobi_iOS.a; sourceTree = "<group>"; };
|
|
||||||
20B2547113A03F8300F33931 /* AdWhirlAdapterNexage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterNexage.h; sourceTree = "<group>"; };
|
|
||||||
20B2547213A03F8300F33931 /* AdWhirlAdapterNexage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterNexage.m; sourceTree = "<group>"; };
|
|
||||||
20ED534C14687FD20080D52D /* IMAdError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMAdError.h; sourceTree = "<group>"; };
|
|
||||||
20ED534D14687FD20080D52D /* IMAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMAdView.h; sourceTree = "<group>"; };
|
|
||||||
20ED534E14687FD20080D52D /* IMAdDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMAdDelegate.h; sourceTree = "<group>"; };
|
|
||||||
20ED534F14687FD20080D52D /* IMSDKUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMSDKUtil.h; sourceTree = "<group>"; };
|
|
||||||
20ED535014687FD20080D52D /* IMAdRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMAdRequest.h; sourceTree = "<group>"; };
|
|
||||||
20F28C7113AC30BB006C724A /* NexageAdParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NexageAdParameters.h; sourceTree = "<group>"; };
|
|
||||||
20F28C7213AC30BB006C724A /* NexageAdViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NexageAdViewController.h; sourceTree = "<group>"; };
|
|
||||||
20F28C7313AC30BB006C724A /* NexageDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NexageDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
20F28CDF13B00F87006C724A /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
|
|
||||||
20F28CE113B00FD5006C724A /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlSDK2_Sample_Prefix.pch; sourceTree = "<group>"; };
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = "<group>"; };
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = "<group>"; };
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RootViewController.xib; sourceTree = "<group>"; };
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
6B42360312EA0D41001F5395 /* AdWhirlAdapterOneRiot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterOneRiot.h; sourceTree = "<group>"; };
|
|
||||||
6B42360412EA0D41001F5395 /* AdWhirlAdapterOneRiot.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterOneRiot.m; sourceTree = "<group>"; };
|
|
||||||
6B42365812EA16FE001F5395 /* OneRiotAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OneRiotAd.h; path = ../AdNetworkLibs/OneRiot/OneRiotAd.h; sourceTree = "<group>"; };
|
|
||||||
6B42368F12EA29EB001F5395 /* libOneRiot.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOneRiot.a; path = ../AdNetworkLibs/OneRiot/libOneRiot.a; sourceTree = "<group>"; };
|
|
||||||
6B629D471332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGoogleAdMobAds.h; sourceTree = "<group>"; };
|
|
||||||
6B629D481332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGoogleAdMobAds.m; sourceTree = "<group>"; };
|
|
||||||
6B629D511332BAB9000D019C /* GADBannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADBannerView.h; sourceTree = "<group>"; };
|
|
||||||
6B629D521332BAB9000D019C /* GADBannerViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADBannerViewDelegate.h; sourceTree = "<group>"; };
|
|
||||||
6B629D531332BAB9000D019C /* GADInterstitial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADInterstitial.h; sourceTree = "<group>"; };
|
|
||||||
6B629D541332BAB9000D019C /* GADInterstitialDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADInterstitialDelegate.h; sourceTree = "<group>"; };
|
|
||||||
6B629D551332BAB9000D019C /* GADRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADRequest.h; sourceTree = "<group>"; };
|
|
||||||
6B629D561332BAB9000D019C /* GADRequestError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADRequestError.h; sourceTree = "<group>"; };
|
|
||||||
6B629D5D1332BC21000D019C /* libGoogleAdMobAds.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAdMobAds.a; sourceTree = "<group>"; };
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "AdWhirlSDK2_Sample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
|
|
||||||
A6051FEE11C7DF6600451D6F /* AdWhirlAdapterIAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterIAd.h; sourceTree = "<group>"; };
|
|
||||||
A6051FEF11C7DF6600451D6F /* AdWhirlAdapterIAd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterIAd.m; sourceTree = "<group>"; };
|
|
||||||
A605200911C7DF8400451D6F /* iAd.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = iAd.framework; path = System/Library/Frameworks/iAd.framework; sourceTree = SDKROOT; };
|
|
||||||
A61E1BA611B6213700D0DD65 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
|
||||||
A61F580B110F698700444E50 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
|
||||||
A62A0D34118F7D810013A568 /* AdWhirlAdapterEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterEvent.h; sourceTree = "<group>"; };
|
|
||||||
A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterEvent.m; sourceTree = "<group>"; };
|
|
||||||
A630FD5E110FABAB00D6740A /* BottomBannerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomBannerController.h; sourceTree = "<group>"; };
|
|
||||||
A630FD5F110FABAB00D6740A /* BottomBannerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BottomBannerController.m; sourceTree = "<group>"; };
|
|
||||||
A630FDA9110FB3E700D6740A /* BottomBannerController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BottomBannerController.xib; sourceTree = "<group>"; };
|
|
||||||
A6392A3111C9777500459FD4 /* adwhirlsample_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "adwhirlsample_icon@2x.png"; sourceTree = "<group>"; };
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableController.h; sourceTree = "<group>"; };
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableController.m; sourceTree = "<group>"; };
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TableController.xib; sourceTree = "<group>"; };
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleConstants.h; sourceTree = "<group>"; };
|
|
||||||
A67869C41121E5C1008E55E8 /* JTAdWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTAdWidget.h; sourceTree = "<group>"; };
|
|
||||||
A67869C51121E5C1008E55E8 /* JumpTapAppReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JumpTapAppReport.h; sourceTree = "<group>"; };
|
|
||||||
A67F2A601162949700E0278D /* MMAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6A7997B1120D36A00A00FD8 /* LocationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocationController.h; sourceTree = "<group>"; };
|
|
||||||
A6A7997C1120D36A00A00FD8 /* LocationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocationController.m; sourceTree = "<group>"; };
|
|
||||||
A6A7998C1120D69600A00FD8 /* LocationController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LocationController.xib; sourceTree = "<group>"; };
|
|
||||||
A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = adwhirlsample_icon.png; sourceTree = "<group>"; };
|
|
||||||
A6BF7001114B0F9A005C95B8 /* libMMSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libMMSDK.a; sourceTree = "<group>"; };
|
|
||||||
A6CB6843110E3B6800B24288 /* AdWhirlAdapterMdotM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMdotM.h; sourceTree = "<group>"; };
|
|
||||||
A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMdotM.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkAdapter.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlDelegateProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdNetworkRegistry.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkRegistry.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlConfig.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlConfig.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlCustomAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlCustomAdView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlError.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlError.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlLog.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlLog.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlView+.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AdWhirlWebBrowser.xib; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlWebBrowserController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlWebBrowserController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARRollerView.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerProtocol.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ARRollerView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterJumpTap.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterJumpTap.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterMillennial.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterMillennial.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterQuattro.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterQuattro.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterVideoEgg.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterVideoEgg.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7810A4D4500091B7F9 /* QWAd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAd.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7910A4D4500091B7F9 /* QWAdView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWAdView.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5C7A10A4D4500091B7F9 /* QWTestMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QWTestMode.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterCustom.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterCustom.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdWhirlAdapterGeneric.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdapterGeneric.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdWhirlAdNetworkAdapter.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "AdWhirlAdNetworkAdapter+Helpers.h"; sourceTree = "<group>"; };
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "AdWhirlAdNetworkAdapter+Helpers.m"; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SimpleViewController.xib; sourceTree = "<group>"; };
|
|
||||||
A6ED4912114F0131002C57E6 /* CDataScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4913114F0131002C57E6 /* CDataScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4915114F0131002C57E6 /* CDataScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CDataScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CDataScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4917114F0131002C57E6 /* NSCharacterSet_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4919114F0131002C57E6 /* NSDictionary_JSONExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDictionary_JSONExtensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDictionary_JSONExtensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED491B114F0131002C57E6 /* NSScanner_Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScanner_Extensions.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSScanner_Extensions.m; sourceTree = "<group>"; };
|
|
||||||
A6ED491E114F0131002C57E6 /* CJSONDataSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDataSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDataSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4920114F0131002C57E6 /* CJSONDeserializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONDeserializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONDeserializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4922114F0131002C57E6 /* CJSONScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONScanner.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4923114F0131002C57E6 /* CJSONScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONScanner.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4924114F0131002C57E6 /* CJSONSerializer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CJSONSerializer.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4925114F0131002C57E6 /* CJSONSerializer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CJSONSerializer.m; sourceTree = "<group>"; };
|
|
||||||
A6ED4926114F0131002C57E6 /* CSerializedJSONData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSerializedJSONData.h; sourceTree = "<group>"; };
|
|
||||||
A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSerializedJSONData.m; sourceTree = "<group>"; };
|
|
||||||
A6F55C6A1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless-Simulator3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
A6F55C6B1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libQuattroWireless3.1.0-os3.0.a"; sourceTree = "<group>"; };
|
|
||||||
A6F6CC771149A8B500DFFFEA /* ModalViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModalViewController.h; sourceTree = "<group>"; };
|
|
||||||
A6F6CC781149A8B500DFFFEA /* ModalViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ModalViewController.m; sourceTree = "<group>"; };
|
|
||||||
A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ModalViewController.xib; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
20F28CE213B00FD5006C724A /* MobileCoreServices.framework in Frameworks */,
|
|
||||||
20F28CE013B00F87006C724A /* CFNetwork.framework in Frameworks */,
|
|
||||||
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
|
|
||||||
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
|
|
||||||
2892E4100DC94CBA00A64D0F /* CoreGraphics.framework in Frameworks */,
|
|
||||||
A6EC5BA710A4B18F0091B7F9 /* CoreLocation.framework in Frameworks */,
|
|
||||||
A6EC5BCD10A4C30D0091B7F9 /* AddressBook.framework in Frameworks */,
|
|
||||||
A6EC5BDC10A4C3150091B7F9 /* MapKit.framework in Frameworks */,
|
|
||||||
A6EC5BE510A4C31C0091B7F9 /* MediaPlayer.framework in Frameworks */,
|
|
||||||
A6EC5BF310A4C3400091B7F9 /* MessageUI.framework in Frameworks */,
|
|
||||||
A6EC5BF810A4C3460091B7F9 /* QuartzCore.framework in Frameworks */,
|
|
||||||
A6EC5C0B10A4C34F0091B7F9 /* SystemConfiguration.framework in Frameworks */,
|
|
||||||
A6EC5C4F10A4C43F0091B7F9 /* libsqlite3.dylib in Frameworks */,
|
|
||||||
A6EC5C5310A4C4470091B7F9 /* libz.dylib in Frameworks */,
|
|
||||||
A61F580C110F698700444E50 /* AudioToolbox.framework in Frameworks */,
|
|
||||||
A61E1BA711B6213700D0DD65 /* AVFoundation.framework in Frameworks */,
|
|
||||||
A605200A11C7DF8400451D6F /* iAd.framework in Frameworks */,
|
|
||||||
1B8B5F1811E7EEDF002762E3 /* libZestADZ.a in Frameworks */,
|
|
||||||
1B3FC6ED11EB954700C890D2 /* libGreystripeSDK.a in Frameworks */,
|
|
||||||
1B7CC27411EFB42C004F4937 /* libAdFrame.a in Frameworks */,
|
|
||||||
1B7CC27511EFB44C004F4937 /* libMMSDK.a in Frameworks */,
|
|
||||||
1B42692511FE258400910F21 /* jtUniversalLib.a in Frameworks */,
|
|
||||||
6B42369012EA29EB001F5395 /* libOneRiot.a in Frameworks */,
|
|
||||||
6B629D5E1332BC21000D019C /* libGoogleAdMobAds.a in Frameworks */,
|
|
||||||
20840DAA13CE56780029064C /* libInMobi_iOS.a in Frameworks */,
|
|
||||||
204AE1CF141984A50043AA76 /* libNexageSDK-Lite.a in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
28C286DF0D94DF7D0034E888 /* RootViewController.h */,
|
|
||||||
28C286E00D94DF7D0034E888 /* RootViewController.m */,
|
|
||||||
1D3623240D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.h */,
|
|
||||||
1D3623250D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m */,
|
|
||||||
A6EC5D1710A4EB710091B7F9 /* SimpleViewController.h */,
|
|
||||||
A6EC5D1810A4EB710091B7F9 /* SimpleViewController.m */,
|
|
||||||
A63C952110A8762800E81577 /* TableController.h */,
|
|
||||||
A63C952210A8762800E81577 /* TableController.m */,
|
|
||||||
A63C959610A8D6C000E81577 /* SampleConstants.h */,
|
|
||||||
A630FD5E110FABAB00D6740A /* BottomBannerController.h */,
|
|
||||||
A630FD5F110FABAB00D6740A /* BottomBannerController.m */,
|
|
||||||
A6A7997B1120D36A00A00FD8 /* LocationController.h */,
|
|
||||||
A6A7997C1120D36A00A00FD8 /* LocationController.m */,
|
|
||||||
A6F6CC771149A8B500DFFFEA /* ModalViewController.h */,
|
|
||||||
A6F6CC781149A8B500DFFFEA /* ModalViewController.m */,
|
|
||||||
);
|
|
||||||
path = Classes;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
1B3FC6E811EB954700C890D2 /* Greystripe */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B3FC6E911EB954700C890D2 /* GreystripeDelegate.h */,
|
|
||||||
1B3FC6EA11EB954700C890D2 /* GSAdEngine.h */,
|
|
||||||
1B3FC6EB11EB954700C890D2 /* GSAdView.h */,
|
|
||||||
1B3FC6EC11EB954700C890D2 /* libGreystripeSDK.a */,
|
|
||||||
);
|
|
||||||
name = Greystripe;
|
|
||||||
path = ../AdNetworkLibs/Greystripe;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
1B7CC26F11EFB42C004F4937 /* VEAdFrames */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B7CC27011EFB42C004F4937 /* include */,
|
|
||||||
1B7CC27311EFB42C004F4937 /* libAdFrame.a */,
|
|
||||||
);
|
|
||||||
name = VEAdFrames;
|
|
||||||
path = ../AdNetworkLibs/VEAdFrames;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
1B7CC27011EFB42C004F4937 /* include */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B7CC27111EFB42C004F4937 /* AdFrameConstants.h */,
|
|
||||||
1B7CC27211EFB42C004F4937 /* AdFrameView.h */,
|
|
||||||
);
|
|
||||||
path = include;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
1B8B5F1411E7EEDF002762E3 /* ZestADZ */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B8B5F1511E7EEDF002762E3 /* libZestADZ.a */,
|
|
||||||
1B8B5F1611E7EEDF002762E3 /* ZestadzDelegateProtocal.h */,
|
|
||||||
1B8B5F1711E7EEDF002762E3 /* ZestadzView.h */,
|
|
||||||
);
|
|
||||||
name = ZestADZ;
|
|
||||||
path = ../AdNetworkLibs/ZestADZ;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
1B91B4AD125557F600C665F7 /* InMobi */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
20ED534C14687FD20080D52D /* IMAdError.h */,
|
|
||||||
20ED534D14687FD20080D52D /* IMAdView.h */,
|
|
||||||
20ED534E14687FD20080D52D /* IMAdDelegate.h */,
|
|
||||||
20ED534F14687FD20080D52D /* IMSDKUtil.h */,
|
|
||||||
20ED535014687FD20080D52D /* IMAdRequest.h */,
|
|
||||||
20840DA913CE56780029064C /* libInMobi_iOS.a */,
|
|
||||||
);
|
|
||||||
name = InMobi;
|
|
||||||
path = ../AdNetworkLibs/InMobi;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
20F28C4513AC2FFC006C724A /* Nexage */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
204AE1CE141984A50043AA76 /* libNexageSDK-Lite.a */,
|
|
||||||
20F28C7013AC30BB006C724A /* includes */,
|
|
||||||
);
|
|
||||||
name = Nexage;
|
|
||||||
path = ../AdNetworkLibs/Nexage;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
20F28C7013AC30BB006C724A /* includes */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
20F28C7113AC30BB006C724A /* NexageAdParameters.h */,
|
|
||||||
20F28C7213AC30BB006C724A /* NexageAdViewController.h */,
|
|
||||||
20F28C7313AC30BB006C724A /* NexageDelegateProtocol.h */,
|
|
||||||
);
|
|
||||||
path = includes;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */,
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */,
|
|
||||||
A6ED4911114F0131002C57E6 /* TouchJSON */,
|
|
||||||
080E96DDFE201D6D7F000001 /* Classes */,
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
|
||||||
);
|
|
||||||
name = CustomTemplate;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
28A0AAE50D9B0CCF005BE974 /* AdWhirlSDK2_Sample_Prefix.pch */,
|
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
);
|
|
||||||
name = "Other Sources";
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6A7998C1120D69600A00FD8 /* LocationController.xib */,
|
|
||||||
A6B0CF2B10ACBD8900B29A14 /* adwhirlsample_icon.png */,
|
|
||||||
A6392A3111C9777500459FD4 /* adwhirlsample_icon@2x.png */,
|
|
||||||
A63C952610A8CCFF00E81577 /* TableController.xib */,
|
|
||||||
A6EC5D2D10A4EBAB0091B7F9 /* SimpleViewController.xib */,
|
|
||||||
A630FDA9110FB3E700D6740A /* BottomBannerController.xib */,
|
|
||||||
28F335F01007B36200424DE2 /* RootViewController.xib */,
|
|
||||||
A6F6CC791149A8B500DFFFEA /* ModalViewController.xib */,
|
|
||||||
28AD735F0D9D9599002E5188 /* MainWindow.xib */,
|
|
||||||
8D1107310486CEB800E47090 /* AdWhirlSDK2_Sample-Info.plist */,
|
|
||||||
);
|
|
||||||
name = Resources;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
20F28CE113B00FD5006C724A /* MobileCoreServices.framework */,
|
|
||||||
20F28CDF13B00F87006C724A /* CFNetwork.framework */,
|
|
||||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
|
|
||||||
1D30AB110D05D00D00671497 /* Foundation.framework */,
|
|
||||||
2892E40F0DC94CBA00A64D0F /* CoreGraphics.framework */,
|
|
||||||
A61E1BA611B6213700D0DD65 /* AVFoundation.framework */,
|
|
||||||
A6EC5BA610A4B18F0091B7F9 /* CoreLocation.framework */,
|
|
||||||
A6EC5BCC10A4C30D0091B7F9 /* AddressBook.framework */,
|
|
||||||
A61F580B110F698700444E50 /* AudioToolbox.framework */,
|
|
||||||
A6EC5BDB10A4C3150091B7F9 /* MapKit.framework */,
|
|
||||||
A6EC5BE410A4C31C0091B7F9 /* MediaPlayer.framework */,
|
|
||||||
A6EC5BF210A4C3400091B7F9 /* MessageUI.framework */,
|
|
||||||
A6EC5BF710A4C3460091B7F9 /* QuartzCore.framework */,
|
|
||||||
A6EC5C0A10A4C34F0091B7F9 /* SystemConfiguration.framework */,
|
|
||||||
A605200911C7DF8400451D6F /* iAd.framework */,
|
|
||||||
A6EC5C4E10A4C43F0091B7F9 /* libsqlite3.dylib */,
|
|
||||||
A6EC5C5210A4C4470091B7F9 /* libz.dylib */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
6B42365712EA16EE001F5395 /* OneRiot */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
6B42365812EA16FE001F5395 /* OneRiotAd.h */,
|
|
||||||
6B42368F12EA29EB001F5395 /* libOneRiot.a */,
|
|
||||||
);
|
|
||||||
name = OneRiot;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
6B629D501332BAB9000D019C /* Google */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
6B629D511332BAB9000D019C /* GADBannerView.h */,
|
|
||||||
6B629D521332BAB9000D019C /* GADBannerViewDelegate.h */,
|
|
||||||
6B629D531332BAB9000D019C /* GADInterstitial.h */,
|
|
||||||
6B629D541332BAB9000D019C /* GADInterstitialDelegate.h */,
|
|
||||||
6B629D551332BAB9000D019C /* GADRequest.h */,
|
|
||||||
6B629D561332BAB9000D019C /* GADRequestError.h */,
|
|
||||||
6B629D5D1332BC21000D019C /* libGoogleAdMobAds.a */,
|
|
||||||
);
|
|
||||||
name = Google;
|
|
||||||
path = ../AdNetworkLibs/Google;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A67869B91121E5C1008E55E8 /* JumptapApi */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B42692411FE258400910F21 /* jtUniversalLib.a */,
|
|
||||||
A67869C41121E5C1008E55E8 /* JTAdWidget.h */,
|
|
||||||
A67869C51121E5C1008E55E8 /* JumpTapAppReport.h */,
|
|
||||||
);
|
|
||||||
name = JumptapApi;
|
|
||||||
path = ../AdNetworkLibs/JumptapApi;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5B3C10A4B0C60091B7F9 /* AdWhirl */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */,
|
|
||||||
A6EC5B5210A4B0C60091B7F9 /* AdWhirlDelegateProtocol.h */,
|
|
||||||
A6EC5B5310A4B0C60091B7F9 /* AdWhirlView.h */,
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */,
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */,
|
|
||||||
);
|
|
||||||
name = AdWhirl;
|
|
||||||
path = ../AdWhirl;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5B3D10A4B0C60091B7F9 /* adapters */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
6B629D471332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.h */,
|
|
||||||
6B629D481332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.m */,
|
|
||||||
1BF8DFCF11EB855100C2284D /* AdWhirlAdapterGreystripe.h */,
|
|
||||||
1BF8DFD011EB855100C2284D /* AdWhirlAdapterGreystripe.m */,
|
|
||||||
A6051FEE11C7DF6600451D6F /* AdWhirlAdapterIAd.h */,
|
|
||||||
A6051FEF11C7DF6600451D6F /* AdWhirlAdapterIAd.m */,
|
|
||||||
1B91B4B51255596900C665F7 /* AdWhirlAdapterInMobi.h */,
|
|
||||||
1B91B4B61255596900C665F7 /* AdWhirlAdapterInMobi.m */,
|
|
||||||
A6EC5C5610A4C9900091B7F9 /* AdWhirlAdapterJumpTap.h */,
|
|
||||||
A6EC5C5710A4C9900091B7F9 /* AdWhirlAdapterJumpTap.m */,
|
|
||||||
A6CB6843110E3B6800B24288 /* AdWhirlAdapterMdotM.h */,
|
|
||||||
A6CB6844110E3B6800B24288 /* AdWhirlAdapterMdotM.m */,
|
|
||||||
A6EC5C5810A4C9900091B7F9 /* AdWhirlAdapterMillennial.h */,
|
|
||||||
A6EC5C5910A4C9900091B7F9 /* AdWhirlAdapterMillennial.m */,
|
|
||||||
20B2547113A03F8300F33931 /* AdWhirlAdapterNexage.h */,
|
|
||||||
20B2547213A03F8300F33931 /* AdWhirlAdapterNexage.m */,
|
|
||||||
6B42360312EA0D41001F5395 /* AdWhirlAdapterOneRiot.h */,
|
|
||||||
6B42360412EA0D41001F5395 /* AdWhirlAdapterOneRiot.m */,
|
|
||||||
A6EC5C5A10A4C9900091B7F9 /* AdWhirlAdapterQuattro.h */,
|
|
||||||
A6EC5C5B10A4C9900091B7F9 /* AdWhirlAdapterQuattro.m */,
|
|
||||||
A6EC5C5C10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.h */,
|
|
||||||
A6EC5C5D10A4C9900091B7F9 /* AdWhirlAdapterVideoEgg.m */,
|
|
||||||
1B8B5F0D11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.h */,
|
|
||||||
1B8B5F0E11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.m */,
|
|
||||||
A6EC5B5010A4B0C60091B7F9 /* AdWhirlAdNetworkAdapter.h */,
|
|
||||||
);
|
|
||||||
path = adapters;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B5410A4B0C60091B7F9 /* internal */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
1B6898DB120C916A0080EAC1 /* AdWhirlClassWrapper.h */,
|
|
||||||
1B6898DC120C916A0080EAC1 /* AdWhirlClassWrapper.m */,
|
|
||||||
A62A0D34118F7D810013A568 /* AdWhirlAdapterEvent.h */,
|
|
||||||
A62A0D35118F7D810013A568 /* AdWhirlAdapterEvent.m */,
|
|
||||||
A6EC5CB210A4DCA00091B7F9 /* AdWhirlAdapterCustom.h */,
|
|
||||||
A6EC5CB310A4DCA00091B7F9 /* AdWhirlAdapterCustom.m */,
|
|
||||||
A6EC5CB410A4DCA00091B7F9 /* AdWhirlAdapterGeneric.h */,
|
|
||||||
A6EC5CB510A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m */,
|
|
||||||
A6EC5CB610A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m */,
|
|
||||||
A6EC5CB710A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.h */,
|
|
||||||
A6EC5CB810A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m */,
|
|
||||||
A6EC5B5510A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.h */,
|
|
||||||
A6EC5B5610A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m */,
|
|
||||||
A6EC5B5710A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.h */,
|
|
||||||
A6EC5B5810A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m */,
|
|
||||||
A6EC5B5910A4B0C60091B7F9 /* AdWhirlConfig.h */,
|
|
||||||
A6EC5B5A10A4B0C60091B7F9 /* AdWhirlConfig.m */,
|
|
||||||
A6EC5B5B10A4B0C60091B7F9 /* AdWhirlCustomAdView.h */,
|
|
||||||
A6EC5B5C10A4B0C60091B7F9 /* AdWhirlCustomAdView.m */,
|
|
||||||
A6EC5B5D10A4B0C60091B7F9 /* AdWhirlError.h */,
|
|
||||||
A6EC5B5E10A4B0C60091B7F9 /* AdWhirlError.m */,
|
|
||||||
A6EC5B5F10A4B0C60091B7F9 /* AdWhirlLog.h */,
|
|
||||||
A6EC5B6010A4B0C60091B7F9 /* AdWhirlLog.m */,
|
|
||||||
A6EC5B6110A4B0C60091B7F9 /* AdWhirlView+.h */,
|
|
||||||
A6EC5B6210A4B0C60091B7F9 /* AdWhirlView.m */,
|
|
||||||
A6EC5B6310A4B0C60091B7F9 /* AdWhirlWebBrowser.xib */,
|
|
||||||
A6EC5B6410A4B0C60091B7F9 /* AdWhirlWebBrowserController.h */,
|
|
||||||
A6EC5B6510A4B0C60091B7F9 /* AdWhirlWebBrowserController.m */,
|
|
||||||
A6EC5B6610A4B0C60091B7F9 /* ARRollerView.m */,
|
|
||||||
1B183AA61211C7C60026647E /* UIColor+AdWhirlConfig.h */,
|
|
||||||
1B183AA71211C7C60026647E /* UIColor+AdWhirlConfig.m */,
|
|
||||||
1B6CE7C8121498DA00E44A28 /* AdWhirlConfigStore.h */,
|
|
||||||
1B6CE7C9121498DA00E44A28 /* AdWhirlConfigStore.m */,
|
|
||||||
1B6CE8901214AA6A00E44A28 /* AWNetworkReachabilityWrapper.h */,
|
|
||||||
1B6CE8911214AA6A00E44A28 /* AWNetworkReachabilityWrapper.m */,
|
|
||||||
1B1973FD12415A1B0083FB36 /* AWNetworkReachabilityDelegate.h */,
|
|
||||||
);
|
|
||||||
path = internal;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5B6710A4B0C60091B7F9 /* legacy */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6EC5B6810A4B0C60091B7F9 /* ARRollerProtocol.h */,
|
|
||||||
A6EC5B6910A4B0C60091B7F9 /* ARRollerView.h */,
|
|
||||||
);
|
|
||||||
path = legacy;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C6310A4C9A50091B7F9 /* AdNetworkLibs */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
20F28C4513AC2FFC006C724A /* Nexage */,
|
|
||||||
6B629D501332BAB9000D019C /* Google */,
|
|
||||||
1B3FC6E811EB954700C890D2 /* Greystripe */,
|
|
||||||
1B91B4AD125557F600C665F7 /* InMobi */,
|
|
||||||
A67869B91121E5C1008E55E8 /* JumptapApi */,
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */,
|
|
||||||
6B42365712EA16EE001F5395 /* OneRiot */,
|
|
||||||
A6EC5C7510A4D4500091B7F9 /* QuattroWirelessLib */,
|
|
||||||
1B7CC26F11EFB42C004F4937 /* VEAdFrames */,
|
|
||||||
1B8B5F1411E7EEDF002762E3 /* ZestADZ */,
|
|
||||||
);
|
|
||||||
name = AdNetworkLibs;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6EC5C7510A4D4500091B7F9 /* QuattroWirelessLib */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6F55C6A1121CB260062F368 /* libQuattroWireless-Simulator3.1.0-os3.0.a */,
|
|
||||||
A6F55C6B1121CB260062F368 /* libQuattroWireless3.1.0-os3.0.a */,
|
|
||||||
A6EC5C7810A4D4500091B7F9 /* QWAd.h */,
|
|
||||||
A6EC5C7910A4D4500091B7F9 /* QWAdView.h */,
|
|
||||||
A6EC5C7A10A4D4500091B7F9 /* QWTestMode.h */,
|
|
||||||
);
|
|
||||||
name = QuattroWirelessLib;
|
|
||||||
path = ../AdNetworkLibs/QuattroWirelessLib;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6EC5C7D10A4D4BF0091B7F9 /* MillennialMedia */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A67F2A601162949700E0278D /* MMAdView.h */,
|
|
||||||
A6BF7001114B0F9A005C95B8 /* libMMSDK.a */,
|
|
||||||
);
|
|
||||||
name = MillennialMedia;
|
|
||||||
path = ../AdNetworkLibs/MillennialMedia;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6ED4911114F0131002C57E6 /* TouchJSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4912114F0131002C57E6 /* CDataScanner.h */,
|
|
||||||
A6ED4913114F0131002C57E6 /* CDataScanner.m */,
|
|
||||||
A6ED4914114F0131002C57E6 /* Extensions */,
|
|
||||||
A6ED491D114F0131002C57E6 /* JSON */,
|
|
||||||
);
|
|
||||||
name = TouchJSON;
|
|
||||||
path = ../TouchJSON;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
A6ED4914114F0131002C57E6 /* Extensions */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED4915114F0131002C57E6 /* CDataScanner_Extensions.h */,
|
|
||||||
A6ED4916114F0131002C57E6 /* CDataScanner_Extensions.m */,
|
|
||||||
A6ED4917114F0131002C57E6 /* NSCharacterSet_Extensions.h */,
|
|
||||||
A6ED4918114F0131002C57E6 /* NSCharacterSet_Extensions.m */,
|
|
||||||
A6ED4919114F0131002C57E6 /* NSDictionary_JSONExtensions.h */,
|
|
||||||
A6ED491A114F0131002C57E6 /* NSDictionary_JSONExtensions.m */,
|
|
||||||
A6ED491B114F0131002C57E6 /* NSScanner_Extensions.h */,
|
|
||||||
A6ED491C114F0131002C57E6 /* NSScanner_Extensions.m */,
|
|
||||||
);
|
|
||||||
path = Extensions;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
A6ED491D114F0131002C57E6 /* JSON */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
A6ED491E114F0131002C57E6 /* CJSONDataSerializer.h */,
|
|
||||||
A6ED491F114F0131002C57E6 /* CJSONDataSerializer.m */,
|
|
||||||
A6ED4920114F0131002C57E6 /* CJSONDeserializer.h */,
|
|
||||||
A6ED4921114F0131002C57E6 /* CJSONDeserializer.m */,
|
|
||||||
A6ED4922114F0131002C57E6 /* CJSONScanner.h */,
|
|
||||||
A6ED4923114F0131002C57E6 /* CJSONScanner.m */,
|
|
||||||
A6ED4924114F0131002C57E6 /* CJSONSerializer.h */,
|
|
||||||
A6ED4925114F0131002C57E6 /* CJSONSerializer.m */,
|
|
||||||
A6ED4926114F0131002C57E6 /* CSerializedJSONData.h */,
|
|
||||||
A6ED4927114F0131002C57E6 /* CSerializedJSONData.m */,
|
|
||||||
);
|
|
||||||
path = JSON;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */;
|
|
||||||
buildPhases = (
|
|
||||||
1B049FDE122ED494006AE0C9 /* ShellScript */,
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */,
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */,
|
|
||||||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = AdWhirlSDK2_Sample;
|
|
||||||
productName = AdWhirlSDK2_Sample;
|
|
||||||
productReference = 1D6058910D05DD3D006BFB54 /* AdWhirlSDK2.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
attributes = {
|
|
||||||
LastUpgradeCheck = 0420;
|
|
||||||
};
|
|
||||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample" */;
|
|
||||||
compatibilityVersion = "Xcode 3.2";
|
|
||||||
developmentRegion = English;
|
|
||||||
hasScannedForEncodings = 1;
|
|
||||||
knownRegions = (
|
|
||||||
English,
|
|
||||||
Japanese,
|
|
||||||
French,
|
|
||||||
German,
|
|
||||||
en,
|
|
||||||
);
|
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = ../;
|
|
||||||
targets = (
|
|
||||||
1D6058900D05DD3D006BFB54 /* AdWhirlSDK2_Sample */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
1D60588D0D05DD3D006BFB54 /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */,
|
|
||||||
28F335F11007B36200424DE2 /* RootViewController.xib in Resources */,
|
|
||||||
A6EC5B7B10A4B0C60091B7F9 /* AdWhirlWebBrowser.xib in Resources */,
|
|
||||||
A6EC5D2E10A4EBAB0091B7F9 /* SimpleViewController.xib in Resources */,
|
|
||||||
A63C952710A8CCFF00E81577 /* TableController.xib in Resources */,
|
|
||||||
A6B0CF2C10ACBD8900B29A14 /* adwhirlsample_icon.png in Resources */,
|
|
||||||
A630FDAA110FB3E700D6740A /* BottomBannerController.xib in Resources */,
|
|
||||||
A6A7998D1120D69600A00FD8 /* LocationController.xib in Resources */,
|
|
||||||
A6F6CC7B1149A8B500DFFFEA /* ModalViewController.xib in Resources */,
|
|
||||||
A6392A3211C9777500459FD4 /* adwhirlsample_icon@2x.png in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
|
||||||
1B049FDE122ED494006AE0C9 /* ShellScript */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "cp -f adwhirlsample_iconAT2x.png adwhirlsample_icon@2x.png";
|
|
||||||
};
|
|
||||||
/* End PBXShellScriptBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
1D60588E0D05DD3D006BFB54 /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
|
|
||||||
1D3623260D0F684500981E51 /* AdWhirlSDK2_SampleAppDelegate.m in Sources */,
|
|
||||||
28C286E10D94DF7D0034E888 /* RootViewController.m in Sources */,
|
|
||||||
A6EC5B7410A4B0C60091B7F9 /* AdWhirlAdNetworkConfig.m in Sources */,
|
|
||||||
A6EC5B7510A4B0C60091B7F9 /* AdWhirlAdNetworkRegistry.m in Sources */,
|
|
||||||
A6EC5B7610A4B0C60091B7F9 /* AdWhirlConfig.m in Sources */,
|
|
||||||
A6EC5B7710A4B0C60091B7F9 /* AdWhirlCustomAdView.m in Sources */,
|
|
||||||
A6EC5B7810A4B0C60091B7F9 /* AdWhirlError.m in Sources */,
|
|
||||||
A6EC5B7910A4B0C60091B7F9 /* AdWhirlLog.m in Sources */,
|
|
||||||
A6EC5B7A10A4B0C60091B7F9 /* AdWhirlView.m in Sources */,
|
|
||||||
A6EC5B7C10A4B0C60091B7F9 /* AdWhirlWebBrowserController.m in Sources */,
|
|
||||||
A6EC5B7D10A4B0C60091B7F9 /* ARRollerView.m in Sources */,
|
|
||||||
A6EC5CB910A4DCA00091B7F9 /* AdWhirlAdapterCustom.m in Sources */,
|
|
||||||
A6EC5CBA10A4DCA00091B7F9 /* AdWhirlAdapterGeneric.m in Sources */,
|
|
||||||
A6EC5CBB10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter.m in Sources */,
|
|
||||||
A6EC5CBC10A4DCA00091B7F9 /* AdWhirlAdNetworkAdapter+Helpers.m in Sources */,
|
|
||||||
A6EC5D1A10A4EB710091B7F9 /* SimpleViewController.m in Sources */,
|
|
||||||
A63C952410A8762800E81577 /* TableController.m in Sources */,
|
|
||||||
A630FD61110FABAB00D6740A /* BottomBannerController.m in Sources */,
|
|
||||||
A6A7997D1120D36A00A00FD8 /* LocationController.m in Sources */,
|
|
||||||
A6F6CC7A1149A8B500DFFFEA /* ModalViewController.m in Sources */,
|
|
||||||
A6ED4928114F0131002C57E6 /* CDataScanner.m in Sources */,
|
|
||||||
A6ED4929114F0131002C57E6 /* CDataScanner_Extensions.m in Sources */,
|
|
||||||
A6ED492A114F0131002C57E6 /* NSCharacterSet_Extensions.m in Sources */,
|
|
||||||
A6ED492B114F0131002C57E6 /* NSDictionary_JSONExtensions.m in Sources */,
|
|
||||||
A6ED492C114F0131002C57E6 /* NSScanner_Extensions.m in Sources */,
|
|
||||||
A6ED492D114F0131002C57E6 /* CJSONDataSerializer.m in Sources */,
|
|
||||||
A6ED492E114F0131002C57E6 /* CJSONDeserializer.m in Sources */,
|
|
||||||
A6ED492F114F0131002C57E6 /* CJSONScanner.m in Sources */,
|
|
||||||
A6ED4930114F0131002C57E6 /* CJSONSerializer.m in Sources */,
|
|
||||||
A6ED4931114F0131002C57E6 /* CSerializedJSONData.m in Sources */,
|
|
||||||
A62A0D36118F7D810013A568 /* AdWhirlAdapterEvent.m in Sources */,
|
|
||||||
A6051FF011C7DF6600451D6F /* AdWhirlAdapterIAd.m in Sources */,
|
|
||||||
A605201311C7E20400451D6F /* AdWhirlAdapterMdotM.m in Sources */,
|
|
||||||
1B8B5F0F11E7EE8D002762E3 /* AdWhirlAdapterZestADZ.m in Sources */,
|
|
||||||
1BF8DFD111EB855100C2284D /* AdWhirlAdapterGreystripe.m in Sources */,
|
|
||||||
1B7CC26C11EFB400004F4937 /* AdWhirlAdapterMillennial.m in Sources */,
|
|
||||||
1B7CC26D11EFB403004F4937 /* AdWhirlAdapterVideoEgg.m in Sources */,
|
|
||||||
1B42692611FE25A500910F21 /* AdWhirlAdapterJumpTap.m in Sources */,
|
|
||||||
1B6898DD120C916A0080EAC1 /* AdWhirlClassWrapper.m in Sources */,
|
|
||||||
1B183AA81211C7C60026647E /* UIColor+AdWhirlConfig.m in Sources */,
|
|
||||||
1B6CE7CA121498DA00E44A28 /* AdWhirlConfigStore.m in Sources */,
|
|
||||||
1B6CE8921214AA6A00E44A28 /* AWNetworkReachabilityWrapper.m in Sources */,
|
|
||||||
1B91B4B71255596900C665F7 /* AdWhirlAdapterInMobi.m in Sources */,
|
|
||||||
6B42360512EA0D41001F5395 /* AdWhirlAdapterOneRiot.m in Sources */,
|
|
||||||
6B629D491332B9B7000D019C /* AdWhirlAdapterGoogleAdMobAds.m in Sources */,
|
|
||||||
20B2547313A03F8300F33931 /* AdWhirlAdapterNexage.m in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/ZestADZ\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Greystripe\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/OneRiot\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Google\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/InMobi\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Nexage\"",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
COPY_PHASE_STRIP = YES;
|
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
|
||||||
GCC_PREFIX_HEADER = AdWhirlSDK2_Sample_Prefix.pch;
|
|
||||||
INFOPLIST_FILE = "AdWhirlSDK2_Sample-Info.plist";
|
|
||||||
LIBRARY_SEARCH_PATHS = (
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/MillennialMedia\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/QuattroWirelessLib\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/ZestADZ\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Greystripe\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/VEAdFrames\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/JumptapApi\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/OneRiot\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Google\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/InMobi\"",
|
|
||||||
"\"$(SRCROOT)/../AdNetworkLibs/Nexage\"",
|
|
||||||
);
|
|
||||||
PRODUCT_NAME = AdWhirlSDK2;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
C01FCF4F08A954540054247B /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "ADWHIRL_DEBUG=1";
|
|
||||||
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
|
|
||||||
OTHER_LDFLAGS = (
|
|
||||||
"-ObjC",
|
|
||||||
"-all_load",
|
|
||||||
);
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
C01FCF5008A954540054247B /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 3.0;
|
|
||||||
OTHER_LDFLAGS = (
|
|
||||||
"-ObjC",
|
|
||||||
"-all_load",
|
|
||||||
);
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AdWhirlSDK2_Sample" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
1D6058940D05DD3E006BFB54 /* Debug */,
|
|
||||||
1D6058950D05DD3E006BFB54 /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AdWhirlSDK2_Sample" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
C01FCF4F08A954540054247B /* Debug */,
|
|
||||||
C01FCF5008A954540054247B /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
//
|
|
||||||
// Prefix header for all source files of the 'AdWhirlSDK2_Sample' target in the 'AdWhirlSDK2_Sample' project
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Availability.h>
|
|
||||||
|
|
||||||
#ifdef __OBJC__
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#endif
|
|
||||||
@@ -1,555 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">768</int>
|
|
||||||
<string key="IBDocument.SystemVersion">10D573</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string key="NS.object.0">87</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="8"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBProxyObject" id="372490531">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBProxyObject" id="975951072">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIView" id="865841168">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">292</int>
|
|
||||||
<object class="NSMutableArray" key="NSSubviews">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBUIButton" id="640585752">
|
|
||||||
<reference key="NSNextResponder" ref="865841168"/>
|
|
||||||
<int key="NSvFlags">295</int>
|
|
||||||
<string key="NSFrame">{{20, 20}, {280, 37}}</string>
|
|
||||||
<reference key="NSSuperview" ref="865841168"/>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<int key="IBUITag">607701</int>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
|
||||||
<int key="IBUIContentVerticalAlignment">0</int>
|
|
||||||
<object class="NSFont" key="IBUIFont" id="930561767">
|
|
||||||
<string key="NSName">Helvetica-Bold</string>
|
|
||||||
<double key="NSSize">15</double>
|
|
||||||
<int key="NSfFlags">16</int>
|
|
||||||
</object>
|
|
||||||
<int key="IBUIButtonType">1</int>
|
|
||||||
<string key="IBUINormalTitle">Request New Ad</string>
|
|
||||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="549561436">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="IBUINormalTitleColor">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="86821748">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MC41AA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIButton" id="261747858">
|
|
||||||
<reference key="NSNextResponder" ref="865841168"/>
|
|
||||||
<int key="NSvFlags">295</int>
|
|
||||||
<string key="NSFrame">{{20, 85}, {280, 37}}</string>
|
|
||||||
<reference key="NSSuperview" ref="865841168"/>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<int key="IBUITag">607702</int>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
|
||||||
<int key="IBUIContentVerticalAlignment">0</int>
|
|
||||||
<reference key="IBUIFont" ref="930561767"/>
|
|
||||||
<int key="IBUIButtonType">1</int>
|
|
||||||
<string key="IBUINormalTitle">Roll Over</string>
|
|
||||||
<reference key="IBUIHighlightedTitleColor" ref="549561436"/>
|
|
||||||
<object class="NSColor" key="IBUINormalTitleColor">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
|
|
||||||
</object>
|
|
||||||
<reference key="IBUINormalTitleShadowColor" ref="86821748"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBUILabel" id="307187855">
|
|
||||||
<reference key="NSNextResponder" ref="865841168"/>
|
|
||||||
<int key="NSvFlags">295</int>
|
|
||||||
<string key="NSFrame">{{20, 158}, {280, 153}}</string>
|
|
||||||
<reference key="NSSuperview" ref="865841168"/>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<int key="IBUITag">1337</int>
|
|
||||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<string key="IBUIText">Requesting Ad...</string>
|
|
||||||
<object class="NSFont" key="IBUIFont">
|
|
||||||
<string key="NSName">Helvetica-Bold</string>
|
|
||||||
<double key="NSSize">17</double>
|
|
||||||
<int key="NSfFlags">16</int>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="IBUITextColor">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MC4xMjc3MzcyMjYzIDAgMAA</bytes>
|
|
||||||
</object>
|
|
||||||
<nil key="IBUIHighlightedColor"/>
|
|
||||||
<int key="IBUIBaselineAdjustment">1</int>
|
|
||||||
<float key="IBUIMinimumFontSize">10</float>
|
|
||||||
<int key="IBUINumberOfLines">9</int>
|
|
||||||
<int key="IBUITextAlignment">1</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="NSFrameSize">{320, 416}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">10</int>
|
|
||||||
<object class="NSImage" key="NSImage">
|
|
||||||
<int key="NSImageFlags">549453824</int>
|
|
||||||
<string key="NSSize">{84, 1}</string>
|
|
||||||
<object class="NSMutableArray" key="NSReps">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="0"/>
|
|
||||||
<object class="NSBitmapImageRep">
|
|
||||||
<object class="NSData" key="NSTIFFRepresentation">
|
|
||||||
<bytes key="NS.bytes">TU0AKgAAAVjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
|
|
||||||
y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
|
|
||||||
xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
|
|
||||||
xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
|
|
||||||
xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
|
|
||||||
xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P8ADQEAAAMAAAABAFQAAAEB
|
|
||||||
AAMAAAABAAEAAAECAAMAAAAEAAAB+gEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
|
|
||||||
AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABAAEAAAEXAAQAAAABAAABUAEcAAMAAAABAAEAAAFS
|
|
||||||
AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MCAwAA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
<object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
|
|
||||||
<bool key="IBUIPrompted">NO</bool>
|
|
||||||
</object>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">view</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="865841168"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">12</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">requestNewAd:</string>
|
|
||||||
<reference key="source" ref="640585752"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
<int key="IBEventType">7</int>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">13</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
|
||||||
<string key="label">rollOver:</string>
|
|
||||||
<reference key="source" ref="261747858"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
<int key="IBEventType">7</int>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">14</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<object class="NSArray" key="orderedObjects">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<reference key="object" ref="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="372490531"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="975951072"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">8</int>
|
|
||||||
<reference key="object" ref="865841168"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="261747858"/>
|
|
||||||
<reference ref="640585752"/>
|
|
||||||
<reference ref="307187855"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">9</int>
|
|
||||||
<reference key="object" ref="261747858"/>
|
|
||||||
<reference key="parent" ref="865841168"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">10</int>
|
|
||||||
<reference key="object" ref="640585752"/>
|
|
||||||
<reference key="parent" ref="865841168"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">11</int>
|
|
||||||
<reference key="object" ref="307187855"/>
|
|
||||||
<reference key="parent" ref="865841168"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>-1.CustomClassName</string>
|
|
||||||
<string>-2.CustomClassName</string>
|
|
||||||
<string>10.IBPluginDependency</string>
|
|
||||||
<string>11.IBPluginDependency</string>
|
|
||||||
<string>8.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>8.IBPluginDependency</string>
|
|
||||||
<string>9.IBPluginDependency</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>BottomBannerController</string>
|
|
||||||
<string>UIResponder</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>{{92, 165}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="activeLocalization"/>
|
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="sourceID"/>
|
|
||||||
<int key="maxID">14</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">BottomBannerController</string>
|
|
||||||
<string key="superclassName">SimpleViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/BottomBannerController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">SimpleViewController</string>
|
|
||||||
<string key="superclassName">UIViewController</string>
|
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>requestNewAd:</string>
|
|
||||||
<string>rollOver:</string>
|
|
||||||
<string>showModalView:</string>
|
|
||||||
<string>toggleRefreshAd:</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
<string>id</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/SimpleViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="736994606">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIButton</string>
|
|
||||||
<string key="superclassName">UIControl</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIControl</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UILabel</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIResponder</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="736994606"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchBar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchDisplayController</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
|
||||||
<integer value="768" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
|
||||||
<integer value="3000" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">AdWhirlSDK2_Sample-3_x.xcodeproj</string>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<string key="IBCocoaTouchPluginVersion">87</string>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlSDK2_SampleAppDelegate.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
@interface AdWhirlSDK2_SampleAppDelegate : NSObject <UIApplicationDelegate> {
|
|
||||||
UIWindow *window;
|
|
||||||
UINavigationController *navigationController;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic, retain) IBOutlet UIWindow *window;
|
|
||||||
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
AdWhirlSDK2_SampleAppDelegate.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlSDK2_SampleAppDelegate.h"
|
|
||||||
#import "RootViewController.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
@implementation AdWhirlSDK2_SampleAppDelegate
|
|
||||||
|
|
||||||
@synthesize window;
|
|
||||||
@synthesize navigationController;
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark Application lifecycle
|
|
||||||
|
|
||||||
- (void)applicationDidFinishLaunching:(UIApplication *)application {
|
|
||||||
#ifdef ADWHIRL_DEBUG
|
|
||||||
AWLogSetLogLevel(AWLogLevelDebug);
|
|
||||||
#endif
|
|
||||||
[window addSubview:[navigationController view]];
|
|
||||||
[window makeKeyAndVisible];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)applicationWillTerminate:(UIApplication *)application {
|
|
||||||
// Save data if appropriate
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
#pragma mark Memory management
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[navigationController release];
|
|
||||||
[window release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
//
|
|
||||||
// BottomBannerController.h
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 1/26/10.
|
|
||||||
// Copyright 2010 Admob. Inc.. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "SimpleViewController.h"
|
|
||||||
|
|
||||||
@interface BottomBannerController : SimpleViewController {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
//
|
|
||||||
// BottomBannerController.m
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 1/26/10.
|
|
||||||
// Copyright 2010 Admob. Inc.. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "BottomBannerController.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
|
|
||||||
#define BOTBVIEW_BUTTON_1_TAG 607701
|
|
||||||
#define BOTBVIEW_BUTTON_2_TAG 607702
|
|
||||||
#define BOTBVIEW_BUTTON_1_OFFSET 15
|
|
||||||
#define BOTBVIEW_BUTTON_2_OFFSET 37
|
|
||||||
#define BOTBVIEW_LABEL_OFFSET 67
|
|
||||||
#define BOTBVIEW_LABEL_HDIFF 45
|
|
||||||
|
|
||||||
@implementation BottomBannerController
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if (self = [super initWithNibName:@"BottomBannerController" bundle:nil]) {
|
|
||||||
currLayoutOrientation = UIInterfaceOrientationPortrait; // nib file defines a portrait view
|
|
||||||
self.title = @"Bottom Banner";
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
|
||||||
duration:(NSTimeInterval)duration {
|
|
||||||
[self adjustLayoutToOrientation:interfaceOrientation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustLayoutToOrientation:(UIInterfaceOrientation)newOrientation {
|
|
||||||
if (UIInterfaceOrientationIsPortrait(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsLandscape(newOrientation)) {
|
|
||||||
UIView *button1 = [self.view viewWithTag:BOTBVIEW_BUTTON_1_TAG];
|
|
||||||
UIView *button2 = [self.view viewWithTag:BOTBVIEW_BUTTON_2_TAG];
|
|
||||||
assert(button1 != nil);
|
|
||||||
assert(button2 != nil);
|
|
||||||
CGPoint newCenter = button1.center;
|
|
||||||
newCenter.y -= BOTBVIEW_BUTTON_1_OFFSET;
|
|
||||||
button1.center = newCenter;
|
|
||||||
newCenter = button2.center;
|
|
||||||
newCenter.y -= BOTBVIEW_BUTTON_2_OFFSET;
|
|
||||||
button2.center = newCenter;
|
|
||||||
CGRect newFrame = self.label.frame;
|
|
||||||
newFrame.size.height -= 45;
|
|
||||||
newFrame.origin.y -= BOTBVIEW_LABEL_OFFSET;
|
|
||||||
self.label.frame = newFrame;
|
|
||||||
}
|
|
||||||
else if (UIInterfaceOrientationIsLandscape(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsPortrait(newOrientation)) {
|
|
||||||
UIView *button1 = [self.view viewWithTag:BOTBVIEW_BUTTON_1_TAG];
|
|
||||||
UIView *button2 = [self.view viewWithTag:BOTBVIEW_BUTTON_2_TAG];
|
|
||||||
assert(button1 != nil);
|
|
||||||
assert(button2 != nil);
|
|
||||||
CGPoint newCenter = button1.center;
|
|
||||||
newCenter.y += BOTBVIEW_BUTTON_1_OFFSET;
|
|
||||||
button1.center = newCenter;
|
|
||||||
newCenter = button2.center;
|
|
||||||
newCenter.y += BOTBVIEW_BUTTON_2_OFFSET;
|
|
||||||
button2.center = newCenter;
|
|
||||||
CGRect newFrame = self.label.frame;
|
|
||||||
newFrame.size.height += 45;
|
|
||||||
newFrame.origin.y += BOTBVIEW_LABEL_OFFSET;
|
|
||||||
self.label.frame = newFrame;
|
|
||||||
}
|
|
||||||
CGRect adFrame = [adView frame];
|
|
||||||
CGRect screenBounds = [[UIScreen mainScreen] bounds];
|
|
||||||
if (UIInterfaceOrientationIsPortrait(newOrientation)) {
|
|
||||||
adFrame.origin.y = screenBounds.size.height
|
|
||||||
- adFrame.size.height
|
|
||||||
- self.navigationController.navigationBar.frame.size.height
|
|
||||||
- [UIApplication sharedApplication].statusBarFrame.size.height;
|
|
||||||
[adView setFrame:adFrame];
|
|
||||||
}
|
|
||||||
else if (UIInterfaceOrientationIsLandscape(newOrientation)) {
|
|
||||||
adFrame.origin.y = screenBounds.size.width
|
|
||||||
- adFrame.size.height
|
|
||||||
- self.navigationController.navigationBar.frame.size.height
|
|
||||||
- [UIApplication sharedApplication].statusBarFrame.size.width;
|
|
||||||
[adView setFrame:adFrame];
|
|
||||||
}
|
|
||||||
currLayoutOrientation = newOrientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustAdSize {
|
|
||||||
[UIView beginAnimations:@"AdResize" context:nil];
|
|
||||||
[UIView setAnimationDuration:0.7];
|
|
||||||
CGSize adSize = [adView actualAdSize];
|
|
||||||
CGRect newFrame = adView.frame;
|
|
||||||
newFrame.size.height = adSize.height;
|
|
||||||
newFrame.size.width = adSize.width;
|
|
||||||
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/2;
|
|
||||||
newFrame.origin.y = self.view.bounds.size.height - adSize.height;
|
|
||||||
adView.frame = newFrame;
|
|
||||||
[UIView commitAnimations];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (NSUInteger)millennialMediaAdType {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
//
|
|
||||||
// LocationController.h
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 2/8/10.
|
|
||||||
// Copyright 2010 Admob. Inc.. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
#import "TableController.h"
|
|
||||||
|
|
||||||
@interface LocationController : TableController <CLLocationManagerDelegate> {
|
|
||||||
CLLocationManager *locationManager;
|
|
||||||
UIInterfaceOrientation currLayoutOrientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic,readonly) UILabel *locLabel;
|
|
||||||
|
|
||||||
- (void)adjustLayoutToOrientation:(UIInterfaceOrientation)newOrientation;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
//
|
|
||||||
// LocationController.m
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 2/8/10.
|
|
||||||
// Copyright 2010 Admob. Inc.. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "LocationController.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
#define LOCVIEW_LOCLABEL_OFFSET 79
|
|
||||||
#define LOCVIEW_LABEL_OFFSET 87
|
|
||||||
#define LOCVIEW_LABEL_HDIFF 63
|
|
||||||
|
|
||||||
@implementation LocationController
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if (self = [super initWithNibName:@"LocationController" bundle:nil]) {
|
|
||||||
locationManager = [[CLLocationManager alloc] init];
|
|
||||||
locationManager.delegate = self;
|
|
||||||
[locationManager startUpdatingLocation];
|
|
||||||
currLayoutOrientation = UIInterfaceOrientationPortrait; // nib file defines a portrait view
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
[self adjustLayoutToOrientation:self.interfaceOrientation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UILabel *)locLabel {
|
|
||||||
return (UILabel *)[self.view viewWithTag:103];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
|
||||||
duration:(NSTimeInterval)duration {
|
|
||||||
[self adjustLayoutToOrientation:interfaceOrientation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustLayoutToOrientation:(UIInterfaceOrientation)newOrientation {
|
|
||||||
UILabel *ll = self.locLabel;
|
|
||||||
UILabel *label = self.label;
|
|
||||||
assert(ll != nil);
|
|
||||||
assert(label != nil);
|
|
||||||
if (UIInterfaceOrientationIsPortrait(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsLandscape(newOrientation)) {
|
|
||||||
CGPoint newCenter = ll.center;
|
|
||||||
newCenter.y -= LOCVIEW_LOCLABEL_OFFSET;
|
|
||||||
ll.center = newCenter;
|
|
||||||
CGRect newFrame = label.frame;
|
|
||||||
newFrame.origin.y -= LOCVIEW_LABEL_OFFSET;
|
|
||||||
newFrame.size.height -= LOCVIEW_LABEL_HDIFF;
|
|
||||||
label.frame = newFrame;
|
|
||||||
}
|
|
||||||
else if (UIInterfaceOrientationIsLandscape(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsPortrait(newOrientation)) {
|
|
||||||
CGPoint newCenter = ll.center;
|
|
||||||
newCenter.y += LOCVIEW_LOCLABEL_OFFSET;
|
|
||||||
ll.center = newCenter;
|
|
||||||
CGRect newFrame = label.frame;
|
|
||||||
newFrame.origin.y += LOCVIEW_LABEL_OFFSET;
|
|
||||||
newFrame.size.height += LOCVIEW_LABEL_HDIFF;
|
|
||||||
label.frame = newFrame;
|
|
||||||
}
|
|
||||||
currLayoutOrientation = newOrientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
locationManager.delegate = nil;
|
|
||||||
[locationManager release], locationManager = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (CLLocation *)locationInfo {
|
|
||||||
CLLocation *loc = [locationManager location];
|
|
||||||
AWLogDebug(@"AdWhirl asking for location: %@", loc);
|
|
||||||
return loc;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark CLLocationManagerDelegate methods
|
|
||||||
|
|
||||||
- (void)locationManager:(CLLocationManager *)manager
|
|
||||||
didFailWithError:(NSError *)error {
|
|
||||||
[locationManager stopUpdatingLocation];
|
|
||||||
self.locLabel.text = [NSString stringWithFormat:@"Error getting location: %@",
|
|
||||||
[error localizedDescription]];
|
|
||||||
AWLogError(@"Failed getting location: %@", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)locationManager:(CLLocationManager *)manager
|
|
||||||
didUpdateToLocation:(CLLocation *)newLocation
|
|
||||||
fromLocation:(CLLocation *)oldLocation {
|
|
||||||
self.locLabel.text = [NSString stringWithFormat:@"%lf %lf",
|
|
||||||
newLocation.coordinate.longitude,
|
|
||||||
newLocation.coordinate.latitude];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
//
|
|
||||||
// ModalViewController.h
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 3/11/10.
|
|
||||||
// Copyright 2010 Admob. Inc. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface ModalViewController : UIViewController {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)dismiss:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
//
|
|
||||||
// ModalViewController.m
|
|
||||||
// AdWhirlSDK2_Sample
|
|
||||||
//
|
|
||||||
// Created by Nigel Choi on 3/11/10.
|
|
||||||
// Copyright 2010 Admob. Inc. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "ModalViewController.h"
|
|
||||||
|
|
||||||
|
|
||||||
@implementation ModalViewController
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if (self = [super initWithNibName:@"ModalViewController" bundle:nil]) {
|
|
||||||
self.title = @"Modal View";
|
|
||||||
if ([self respondsToSelector:@selector(setModalTransitionStyle)]) {
|
|
||||||
[self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
|
|
||||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
|
||||||
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
|
|
||||||
// Custom initialization
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)dismiss:(id)sender {
|
|
||||||
[self dismissModalViewControllerAnimated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
// Releases the view if it doesn't have a superview.
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
|
|
||||||
// Release any cached data, images, etc that aren't in use.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidUnload {
|
|
||||||
[super viewDidUnload];
|
|
||||||
// Release any retained subviews of the main view.
|
|
||||||
// e.g. self.myOutlet = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
RootViewController.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
@interface RootViewController : UITableViewController <AdWhirlDelegate> {
|
|
||||||
BOOL configFetched;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,244 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
RootViewController.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlSDK2_SampleAppDelegate.h"
|
|
||||||
#import "RootViewController.h"
|
|
||||||
#import "SimpleViewController.h"
|
|
||||||
#import "TableController.h"
|
|
||||||
#import "BottomBannerController.h"
|
|
||||||
#import "LocationController.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "SampleConstants.h"
|
|
||||||
|
|
||||||
#define CONFIG_PREFETCH_ROW 4
|
|
||||||
|
|
||||||
@implementation RootViewController
|
|
||||||
|
|
||||||
/*
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
|
|
||||||
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
|
|
||||||
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewDidDisappear:(BOOL)animated {
|
|
||||||
[super viewDidDisappear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
// Releases the view if it doesn't have a superview.
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
|
|
||||||
// Release any cached data, images, etc that aren't in use.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidUnload {
|
|
||||||
// Release anything that can be recreated in viewDidLoad or on demand.
|
|
||||||
// e.g. self.myOutlet = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark Table view methods
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
return CONFIG_PREFETCH_ROW+1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
|
|
||||||
static NSString *CellIdentifier = @"Cell";
|
|
||||||
|
|
||||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
|
||||||
if (cell == nil) {
|
|
||||||
if ([UITableViewCell instancesRespondToSelector:@selector(initWithStyle:reuseIdentifier:)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (indexPath.row) {
|
|
||||||
case 0:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Simple View";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Simple View";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Table Integration";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Table Integration";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Bottom Banner";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Bottom Banner";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Table w/ Location Info";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Table w/ Location Info";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case CONFIG_PREFETCH_ROW:
|
|
||||||
{
|
|
||||||
NSString *configText;
|
|
||||||
if (configFetched) {
|
|
||||||
configText = @"Update Config";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
configText = @"Prefetch Config";
|
|
||||||
}
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = configText;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = configText;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
switch (indexPath.row) {
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
SimpleViewController *simple = [[SimpleViewController alloc] init];
|
|
||||||
[self.navigationController pushViewController:simple animated:YES];
|
|
||||||
[simple release];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
TableController *table = [[TableController alloc] init];
|
|
||||||
[self.navigationController pushViewController:table animated:YES];
|
|
||||||
[table release];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
BottomBannerController *bbc = [[BottomBannerController alloc] init];
|
|
||||||
[self.navigationController pushViewController:bbc animated:YES];
|
|
||||||
[bbc release];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
LocationController *loc = [[LocationController alloc] init];
|
|
||||||
[self.navigationController pushViewController:loc animated:YES];
|
|
||||||
[loc release];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case CONFIG_PREFETCH_ROW:
|
|
||||||
if (configFetched) {
|
|
||||||
[AdWhirlView updateAdWhirlConfigWithDelegate:self];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[AdWhirlView startPreFetchingConfigurationDataWithDelegate:self];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (NSString *)adWhirlApplicationKey {
|
|
||||||
return kSampleAppKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)viewControllerForPresentingModalView {
|
|
||||||
return [((AdWhirlSDK2_SampleAppDelegate *)[[UIApplication sharedApplication] delegate]) navigationController];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlConfigURL {
|
|
||||||
return [NSURL URLWithString:kSampleConfigURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveConfig:(AdWhirlView *)adWhirlView {
|
|
||||||
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:CONFIG_PREFETCH_ROW inSection:0];
|
|
||||||
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
||||||
configFetched = YES;
|
|
||||||
[self.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
SampleConstants.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if !defined(kSampleAppKey)
|
|
||||||
#error "You must define kSampleAppKey as your AdWhirl SDK Key"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define kSampleConfigURL @"http://mob.adwhirl.com/getInfo.php"
|
|
||||||
#define kSampleImpMetricURL @"http://met.adwhirl.com/exmet.php"
|
|
||||||
#define kSampleClickMetricURL @"http://met.adwhirl.com/exclick.php"
|
|
||||||
#define kSampleCustomAdURL @"http://mob.adwhirl.com/custom.php"
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
SimpleViewController.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
@class AdWhirlView;
|
|
||||||
@interface SimpleViewController : UIViewController <AdWhirlDelegate> {
|
|
||||||
AdWhirlView *adView;
|
|
||||||
UIInterfaceOrientation currLayoutOrientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)requestNewAd:(id)sender;
|
|
||||||
- (IBAction)requestNewConfig:(id)sender;
|
|
||||||
- (IBAction)rollOver:(id)sender;
|
|
||||||
- (IBAction)showModalView:(id)sender;
|
|
||||||
- (IBAction)toggleRefreshAd:(id)sender;
|
|
||||||
- (void)adjustLayoutToOrientation:(UIInterfaceOrientation)newOrientation;
|
|
||||||
- (void)adjustAdSize;
|
|
||||||
|
|
||||||
@property (nonatomic,retain) AdWhirlView *adView;
|
|
||||||
@property (nonatomic,readonly) UILabel *label;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,441 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
SimpleViewController.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlSDK2_SampleAppDelegate.h"
|
|
||||||
#import "SimpleViewController.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "AdWhirlView+.h"
|
|
||||||
#import "SampleConstants.h"
|
|
||||||
#import "ModalViewController.h"
|
|
||||||
#import "AdWhirlLog.h"
|
|
||||||
|
|
||||||
#define SIMPVIEW_BUTTON_1_TAG 607701
|
|
||||||
#define SIMPVIEW_BUTTON_2_TAG 607702
|
|
||||||
#define SIMPVIEW_BUTTON_3_TAG 607703
|
|
||||||
#define SIMPVIEW_BUTTON_4_TAG 607704
|
|
||||||
#define SIMPVIEW_SWITCH_1_TAG 706613
|
|
||||||
#define SIMPVIEW_LABEL_1_TAG 7066130
|
|
||||||
#define SIMPVIEW_BUTTON_1_OFFSET 46
|
|
||||||
#define SIMPVIEW_BUTTON_2_OFFSET 46
|
|
||||||
#define SIMPVIEW_BUTTON_3_OFFSET 66
|
|
||||||
#define SIMPVIEW_BUTTON_4_OFFSET 86
|
|
||||||
#define SIMPVIEW_SWITCH_1_OFFSET 69
|
|
||||||
#define SIMPVIEW_LABEL_1_OFFSET 43
|
|
||||||
#define SIMPVIEW_LABEL_1_OFFSETX 60
|
|
||||||
#define SIMPVIEW_LABEL_OFFSET 94
|
|
||||||
#define SIMPVIEW_LABEL_HDIFF 45
|
|
||||||
|
|
||||||
@implementation SimpleViewController
|
|
||||||
|
|
||||||
@synthesize adView;
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if (self = [super initWithNibName:@"SimpleViewController" bundle:nil]) {
|
|
||||||
currLayoutOrientation = UIInterfaceOrientationPortrait; // nib file defines a portrait view
|
|
||||||
self.title = @"Simple View";
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
self.adView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
|
|
||||||
self.adView.autoresizingMask =
|
|
||||||
UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
|
|
||||||
[self.view addSubview:self.adView];
|
|
||||||
|
|
||||||
if (getenv("ADWHIRL_FAKE_DARTS")) {
|
|
||||||
// To make ad network selection deterministic
|
|
||||||
const char *dartcstr = getenv("ADWHIRL_FAKE_DARTS");
|
|
||||||
NSArray *rawdarts = [[NSString stringWithCString:dartcstr]
|
|
||||||
componentsSeparatedByString:@" "];
|
|
||||||
NSMutableArray *darts
|
|
||||||
= [[NSMutableArray alloc] initWithCapacity:[rawdarts count]];
|
|
||||||
for (NSString *dartstr in rawdarts) {
|
|
||||||
if ([dartstr length] == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
[darts addObject:[NSNumber numberWithDouble:[dartstr doubleValue]]];
|
|
||||||
}
|
|
||||||
self.adView.testDarts = darts;
|
|
||||||
}
|
|
||||||
|
|
||||||
UIDevice *device = [UIDevice currentDevice];
|
|
||||||
if ([device respondsToSelector:@selector(isMultitaskingSupported)] &&
|
|
||||||
[device isMultitaskingSupported]) {
|
|
||||||
[[NSNotificationCenter defaultCenter]
|
|
||||||
addObserver:self
|
|
||||||
selector:@selector(enterForeground:)
|
|
||||||
name:UIApplicationWillEnterForegroundNotification
|
|
||||||
object:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
[self adjustLayoutToOrientation:self.interfaceOrientation];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)io {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
|
|
||||||
duration:(NSTimeInterval)duration {
|
|
||||||
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
|
||||||
[self.adView rotateToOrientation:toInterfaceOrientation];
|
|
||||||
[self adjustAdSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)io
|
|
||||||
duration:(NSTimeInterval)duration {
|
|
||||||
[self adjustLayoutToOrientation:io];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustLayoutToOrientation:(UIInterfaceOrientation)newOrientation {
|
|
||||||
UIView *button1 = [self.view viewWithTag:SIMPVIEW_BUTTON_1_TAG];
|
|
||||||
UIView *button2 = [self.view viewWithTag:SIMPVIEW_BUTTON_2_TAG];
|
|
||||||
UIView *button3 = [self.view viewWithTag:SIMPVIEW_BUTTON_3_TAG];
|
|
||||||
UIView *button4 = [self.view viewWithTag:SIMPVIEW_BUTTON_4_TAG];
|
|
||||||
UIView *switch1 = [self.view viewWithTag:SIMPVIEW_SWITCH_1_TAG];
|
|
||||||
UIView *label1 = [self.view viewWithTag:SIMPVIEW_LABEL_1_TAG];
|
|
||||||
assert(button1 != nil);
|
|
||||||
assert(button2 != nil);
|
|
||||||
assert(button3 != nil);
|
|
||||||
assert(button4 != nil);
|
|
||||||
assert(switch1 != nil);
|
|
||||||
assert(label1 != nil);
|
|
||||||
if (UIInterfaceOrientationIsPortrait(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsLandscape(newOrientation)) {
|
|
||||||
CGPoint newCenter = button1.center;
|
|
||||||
newCenter.y -= SIMPVIEW_BUTTON_1_OFFSET;
|
|
||||||
button1.center = newCenter;
|
|
||||||
newCenter = button2.center;
|
|
||||||
newCenter.y -= SIMPVIEW_BUTTON_2_OFFSET;
|
|
||||||
button2.center = newCenter;
|
|
||||||
newCenter = button3.center;
|
|
||||||
newCenter.y -= SIMPVIEW_BUTTON_3_OFFSET;
|
|
||||||
button3.center = newCenter;
|
|
||||||
newCenter = button4.center;
|
|
||||||
newCenter.y -= SIMPVIEW_BUTTON_4_OFFSET;
|
|
||||||
button4.center = newCenter;
|
|
||||||
newCenter = switch1.center;
|
|
||||||
newCenter.y -= SIMPVIEW_SWITCH_1_OFFSET;
|
|
||||||
switch1.center = newCenter;
|
|
||||||
newCenter = label1.center;
|
|
||||||
newCenter.y -= SIMPVIEW_LABEL_1_OFFSET;
|
|
||||||
newCenter.x += SIMPVIEW_LABEL_1_OFFSETX;
|
|
||||||
label1.center = newCenter;
|
|
||||||
CGRect newFrame = self.label.frame;
|
|
||||||
newFrame.size.height -= 45;
|
|
||||||
newFrame.origin.y -= SIMPVIEW_LABEL_OFFSET;
|
|
||||||
self.label.frame = newFrame;
|
|
||||||
}
|
|
||||||
else if (UIInterfaceOrientationIsLandscape(currLayoutOrientation)
|
|
||||||
&& UIInterfaceOrientationIsPortrait(newOrientation)) {
|
|
||||||
CGPoint newCenter = button1.center;
|
|
||||||
newCenter.y += SIMPVIEW_BUTTON_1_OFFSET;
|
|
||||||
button1.center = newCenter;
|
|
||||||
newCenter = button2.center;
|
|
||||||
newCenter.y += SIMPVIEW_BUTTON_2_OFFSET;
|
|
||||||
button2.center = newCenter;
|
|
||||||
newCenter = button3.center;
|
|
||||||
newCenter.y += SIMPVIEW_BUTTON_3_OFFSET;
|
|
||||||
button3.center = newCenter;
|
|
||||||
newCenter = button4.center;
|
|
||||||
newCenter.y += SIMPVIEW_BUTTON_4_OFFSET;
|
|
||||||
button4.center = newCenter;
|
|
||||||
newCenter = switch1.center;
|
|
||||||
newCenter.y += SIMPVIEW_SWITCH_1_OFFSET;
|
|
||||||
switch1.center = newCenter;
|
|
||||||
newCenter = label1.center;
|
|
||||||
newCenter.y += SIMPVIEW_LABEL_1_OFFSET;
|
|
||||||
newCenter.x -= SIMPVIEW_LABEL_1_OFFSETX;
|
|
||||||
label1.center = newCenter;
|
|
||||||
CGRect newFrame = self.label.frame;
|
|
||||||
newFrame.size.height += 45;
|
|
||||||
newFrame.origin.y += SIMPVIEW_LABEL_OFFSET;
|
|
||||||
self.label.frame = newFrame;
|
|
||||||
}
|
|
||||||
currLayoutOrientation = newOrientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustAdSize {
|
|
||||||
[UIView beginAnimations:@"AdResize" context:nil];
|
|
||||||
[UIView setAnimationDuration:0.7];
|
|
||||||
CGSize adSize = [adView actualAdSize];
|
|
||||||
CGRect newFrame = adView.frame;
|
|
||||||
newFrame.size.height = adSize.height;
|
|
||||||
newFrame.size.width = adSize.width;
|
|
||||||
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/2;
|
|
||||||
adView.frame = newFrame;
|
|
||||||
[UIView commitAnimations];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
// Releases the view if it doesn't have a superview.
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
|
|
||||||
// Release any cached data, images, etc that aren't in use.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidUnload {
|
|
||||||
// remove all notification for self
|
|
||||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UILabel *)label {
|
|
||||||
return (UILabel *)[self.view viewWithTag:1337];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
self.adView.delegate = nil;
|
|
||||||
self.adView = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark Button handlers
|
|
||||||
|
|
||||||
- (IBAction)requestNewAd:(id)sender {
|
|
||||||
self.label.text = @"Request New Ad pressed! Requesting...";
|
|
||||||
[adView requestFreshAd];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)requestNewConfig:(id)sender {
|
|
||||||
self.label.text = @"Request New Config pressed! Requesting...";
|
|
||||||
[adView updateAdWhirlConfig];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)rollOver:(id)sender {
|
|
||||||
self.label.text = @"Roll Over pressed! Requesting...";
|
|
||||||
[adView rollOver];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)showModalView:(id)sender {
|
|
||||||
ModalViewController *modalViewController = [[[ModalViewController alloc] init] autorelease];
|
|
||||||
[self presentModalViewController:modalViewController animated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)toggleRefreshAd:(id)sender {
|
|
||||||
UISwitch *switch1 = (UISwitch *)[self.view viewWithTag:SIMPVIEW_SWITCH_1_TAG];
|
|
||||||
if (switch1.on) {
|
|
||||||
[adView doNotIgnoreAutoRefreshTimer];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[adView ignoreAutoRefreshTimer];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (NSString *)adWhirlApplicationKey {
|
|
||||||
return kSampleAppKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)viewControllerForPresentingModalView {
|
|
||||||
return [((AdWhirlSDK2_SampleAppDelegate *)[[UIApplication sharedApplication] delegate]) navigationController];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlConfigURL {
|
|
||||||
return [NSURL URLWithString:kSampleConfigURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlImpMetricURL {
|
|
||||||
return [NSURL URLWithString:kSampleImpMetricURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlClickMetricURL {
|
|
||||||
return [NSURL URLWithString:kSampleClickMetricURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlCustomAdURL {
|
|
||||||
return [NSURL URLWithString:kSampleCustomAdURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = [NSString stringWithFormat:
|
|
||||||
@"Got ad from %@, size %@",
|
|
||||||
[adWhirlView mostRecentNetworkName],
|
|
||||||
NSStringFromCGSize([adWhirlView actualAdSize])];
|
|
||||||
[self adjustAdSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidFailToReceiveAd:(AdWhirlView *)adWhirlView usingBackup:(BOOL)yesOrNo {
|
|
||||||
self.label.text = [NSString stringWithFormat:
|
|
||||||
@"Failed to receive ad from %@, %@. Error: %@",
|
|
||||||
[adWhirlView mostRecentNetworkName],
|
|
||||||
yesOrNo? @"will use backup" : @"will NOT use backup",
|
|
||||||
adWhirlView.lastError == nil? @"no error" : [adWhirlView.lastError localizedDescription]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlReceivedRequestForDeveloperToFufill:(AdWhirlView *)adWhirlView {
|
|
||||||
UILabel *replacement = [[UILabel alloc] initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
replacement.backgroundColor = [UIColor redColor];
|
|
||||||
replacement.textColor = [UIColor whiteColor];
|
|
||||||
replacement.textAlignment = UITextAlignmentCenter;
|
|
||||||
replacement.text = @"Generic Notification";
|
|
||||||
[adWhirlView replaceBannerViewWith:replacement];
|
|
||||||
[replacement release];
|
|
||||||
[self adjustAdSize];
|
|
||||||
self.label.text = @"Generic Notification";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlReceivedNotificationAdsAreOff:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = @"Ads are off";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlWillPresentFullScreenModal {
|
|
||||||
NSLog(@"SimpleView: will present full screen modal");
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidDismissFullScreenModal {
|
|
||||||
NSLog(@"SimpleView: did dismiss full screen modal");
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveConfig:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = @"Received config. Requesting ad...";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)adWhirlTestMode {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)adWhirlAdBackgroundColor {
|
|
||||||
return [UIColor purpleColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)adWhirlTextColor {
|
|
||||||
return [UIColor cyanColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CLLocation *)locationInfo {
|
|
||||||
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
|
|
||||||
CLLocation *location = [locationManager location];
|
|
||||||
[locationManager release];
|
|
||||||
return location;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSDate *)dateOfBirth {
|
|
||||||
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
|
|
||||||
NSDateComponents *comps = [[NSDateComponents alloc] init];
|
|
||||||
[comps setYear:1979];
|
|
||||||
[comps setMonth:11];
|
|
||||||
[comps setDay:6];
|
|
||||||
NSDate *date = [gregorian dateFromComponents:comps];
|
|
||||||
[gregorian release];
|
|
||||||
[comps release];
|
|
||||||
return date;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)postalCode {
|
|
||||||
return @"31337";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)incomeLevel {
|
|
||||||
return 99999;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseCompanyName {
|
|
||||||
return @"Your Company";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseAppName {
|
|
||||||
return @"AdWhirl Sample";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseApplicationAppleID {
|
|
||||||
return @"0";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseKeywords {
|
|
||||||
return @"iphone+development,ad+mediation";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)googleAdSenseAppWebContentURL {
|
|
||||||
return [NSURL URLWithString:@"http://www.adwhirl.com"];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSArray *)googleAdSenseChannelIDs {
|
|
||||||
return [NSArray arrayWithObjects:@"0282698142", nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
//extern NSString* const kGADAdSenseTextImageAdType;
|
|
||||||
//- (NSString *)googleAdSenseAdType {
|
|
||||||
// return kGADAdSenseTextImageAdType;
|
|
||||||
//}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseHostID {
|
|
||||||
return @"HostID";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)googleAdSenseAdTopBackgroundColor {
|
|
||||||
return [UIColor orangeColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)googleAdSenseAdBorderColor {
|
|
||||||
return [UIColor redColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)googleAdSenseAdLinkColor {
|
|
||||||
return [UIColor cyanColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)googleAdSenseAdURLColor {
|
|
||||||
return [UIColor orangeColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIColor *)googleAdSenseAlternateAdColor {
|
|
||||||
return [UIColor greenColor];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)googleAdSenseAlternateAdURL {
|
|
||||||
return [NSURL URLWithString:@"http://www.adwhirl.com"];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSNumber *)googleAdSenseAllowAdsafeMedium {
|
|
||||||
return [NSNumber numberWithBool:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark event methods
|
|
||||||
|
|
||||||
- (void)performEvent {
|
|
||||||
self.label.text = @"Event performed";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)performEvent2:(AdWhirlView *)adWhirlView {
|
|
||||||
UILabel *replacement = [[UILabel alloc] initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
replacement.backgroundColor = [UIColor blackColor];
|
|
||||||
replacement.textColor = [UIColor whiteColor];
|
|
||||||
replacement.textAlignment = UITextAlignmentCenter;
|
|
||||||
replacement.text = [NSString stringWithFormat:@"Event performed, view %x", adWhirlView];
|
|
||||||
[adWhirlView replaceBannerViewWith:replacement];
|
|
||||||
[replacement release];
|
|
||||||
[self adjustAdSize];
|
|
||||||
self.label.text = [NSString stringWithFormat:@"Event performed, view %x", adWhirlView];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark multitasking methods
|
|
||||||
|
|
||||||
- (void)enterForeground:(NSNotification *)notification {
|
|
||||||
AWLogDebug(@"SimpleView entering foreground");
|
|
||||||
[self.adView updateAdWhirlConfig];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
TableController.h
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "AdWhirlDelegateProtocol.h"
|
|
||||||
|
|
||||||
@interface TableController : UIViewController <AdWhirlDelegate, UITableViewDelegate, UITableViewDataSource> {
|
|
||||||
AdWhirlView *adView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property (nonatomic,retain) AdWhirlView *adView;
|
|
||||||
@property (nonatomic,readonly) UILabel *label;
|
|
||||||
@property (nonatomic,readonly) UITableView *table;
|
|
||||||
|
|
||||||
- (void)adjustAdSize;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,339 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
TableController.m
|
|
||||||
|
|
||||||
Copyright 2009 AdMob, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AdWhirlSDK2_SampleAppDelegate.h"
|
|
||||||
#import "TableController.h"
|
|
||||||
#import "AdWhirlView.h"
|
|
||||||
#import "SampleConstants.h"
|
|
||||||
|
|
||||||
|
|
||||||
@implementation TableController
|
|
||||||
|
|
||||||
@synthesize adView;
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
if (self = [super initWithNibName:@"TableController" bundle:nil]) {
|
|
||||||
self.title = @"Ad In Table";
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
self.adView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
|
|
||||||
self.adView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
- (void)viewDidDisappear:(BOOL)animated {
|
|
||||||
[super viewDidDisappear:animated];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
|
|
||||||
duration:(NSTimeInterval)duration {
|
|
||||||
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
|
|
||||||
[self.adView rotateToOrientation:toInterfaceOrientation];
|
|
||||||
[self adjustAdSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
// Releases the view if it doesn't have a superview.
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
|
|
||||||
// Release any cached data, images, etc that aren't in use.
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidUnload {
|
|
||||||
// Release any retained subviews of the main view.
|
|
||||||
// e.g. self.myOutlet = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UILabel *)label {
|
|
||||||
return (UILabel *)[self.view viewWithTag:1337];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UITableView *)table {
|
|
||||||
return (UITableView *)[self.view viewWithTag:3337];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adjustAdSize {
|
|
||||||
[UIView beginAnimations:@"AdResize" context:nil];
|
|
||||||
[UIView setAnimationDuration:0.7];
|
|
||||||
CGSize adSize = [adView actualAdSize];
|
|
||||||
CGRect newFrame = adView.frame;
|
|
||||||
newFrame.size.height = adSize.height;
|
|
||||||
newFrame.size.width = adSize.width;
|
|
||||||
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/2;
|
|
||||||
adView.frame = newFrame;
|
|
||||||
[UIView commitAnimations];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
self.adView.delegate = nil;
|
|
||||||
self.adView = nil;
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark Table view methods
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
return 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
|
|
||||||
static NSString *CellIdentifier = @"Cell";
|
|
||||||
static NSString *AdCellIdentifier = @"AdCell";
|
|
||||||
|
|
||||||
NSString *cellId = CellIdentifier;
|
|
||||||
if (indexPath.row == 0) {
|
|
||||||
cellId = AdCellIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
|
||||||
if (cell == nil) {
|
|
||||||
if ([UITableViewCell instancesRespondToSelector:@selector(initWithStyle:reuseIdentifier:)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId] autorelease];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:cellId] autorelease];
|
|
||||||
}
|
|
||||||
if (cellId == AdCellIdentifier) {
|
|
||||||
[cell.contentView addSubview:adView];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (indexPath.row) {
|
|
||||||
case 0:
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Request New Ad";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Request New Ad";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = @"Roll Over";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = @"Roll Over";
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if ([cell respondsToSelector:@selector(textLabel)]) {
|
|
||||||
// iPhone SDK 3.0
|
|
||||||
cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.row];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// iPhone SDK 2.2.1
|
|
||||||
cell.text = [NSString stringWithFormat:@"Cell %d", indexPath.row];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
switch (indexPath.row) {
|
|
||||||
case 1:
|
|
||||||
self.label.text = @"Request New Ad pressed! Requesting...";
|
|
||||||
[adView requestFreshAd];
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
self.label.text = @"Roll Over pressed! Requesting...";
|
|
||||||
[adView rollOver];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
if (indexPath.section == 0 && indexPath.row == 0) {
|
|
||||||
return CGRectGetHeight(adView.bounds);
|
|
||||||
}
|
|
||||||
return self.table.rowHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#pragma mark AdWhirlDelegate methods
|
|
||||||
|
|
||||||
- (NSString *)adWhirlApplicationKey {
|
|
||||||
return kSampleAppKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIViewController *)viewControllerForPresentingModalView {
|
|
||||||
return [((AdWhirlSDK2_SampleAppDelegate *)[[UIApplication sharedApplication] delegate]) navigationController];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlConfigURL {
|
|
||||||
return [NSURL URLWithString:kSampleConfigURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlImpMetricURL {
|
|
||||||
return [NSURL URLWithString:kSampleImpMetricURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlClickMetricURL {
|
|
||||||
return [NSURL URLWithString:kSampleClickMetricURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)adWhirlCustomAdURL {
|
|
||||||
return [NSURL URLWithString:kSampleCustomAdURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = [NSString stringWithFormat:
|
|
||||||
@"Got ad from %@, size %@",
|
|
||||||
[adWhirlView mostRecentNetworkName],
|
|
||||||
NSStringFromCGSize([adWhirlView actualAdSize])];
|
|
||||||
[self adjustAdSize];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidFailToReceiveAd:(AdWhirlView *)adWhirlView usingBackup:(BOOL)yesOrNo {
|
|
||||||
self.label.text = [NSString stringWithFormat:
|
|
||||||
@"Failed to receive ad from %@, %@. Error: %@",
|
|
||||||
[adWhirlView mostRecentNetworkName],
|
|
||||||
yesOrNo? @"will use backup" : @"will NOT use backup",
|
|
||||||
adWhirlView.lastError == nil? @"no error" : [adWhirlView.lastError localizedDescription]];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlReceivedRequestForDeveloperToFufill:(AdWhirlView *)adWhirlView {
|
|
||||||
UILabel *replacement = [[UILabel alloc] initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
replacement.backgroundColor = [UIColor redColor];
|
|
||||||
replacement.textColor = [UIColor whiteColor];
|
|
||||||
replacement.textAlignment = UITextAlignmentCenter;
|
|
||||||
replacement.text = @"Generic Notification";
|
|
||||||
[adWhirlView replaceBannerViewWith:replacement];
|
|
||||||
[replacement release];
|
|
||||||
[self adjustAdSize];
|
|
||||||
self.label.text = @"Generic Notification";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidAnimateToNewAdIn:(AdWhirlView *)adWhirlView {
|
|
||||||
[self.table reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlReceivedNotificationAdsAreOff:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = @"Ads are off";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlWillPresentFullScreenModal {
|
|
||||||
NSLog(@"TableView: will present full screen modal");
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidDismissFullScreenModal {
|
|
||||||
NSLog(@"TableView: did dismiss full screen modal");
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)adWhirlDidReceiveConfig:(AdWhirlView *)adWhirlView {
|
|
||||||
self.label.text = @"Received config. Requesting ad...";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)adWhirlTestMode {
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)jumptapTransitionType {
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)quattroWirelessAdType {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseCompanyName {
|
|
||||||
return @"Your Company";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseAppName {
|
|
||||||
return @"AdWhirl Sample";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseApplicationAppleID {
|
|
||||||
return @"0";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)googleAdSenseKeywords {
|
|
||||||
return @"apple,iphone,ipad,adwhirl";
|
|
||||||
}
|
|
||||||
|
|
||||||
//extern NSString* const kGADAdSenseImageAdType;
|
|
||||||
//- (NSString *)googleAdSenseAdType {
|
|
||||||
// return kGADAdSenseImageAdType;
|
|
||||||
//}
|
|
||||||
|
|
||||||
#pragma mark event methods
|
|
||||||
|
|
||||||
- (void)performEvent {
|
|
||||||
self.label.text = @"Event performed";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)performEvent2:(AdWhirlView *)adWhirlView {
|
|
||||||
UILabel *replacement = [[UILabel alloc] initWithFrame:kAdWhirlViewDefaultFrame];
|
|
||||||
replacement.backgroundColor = [UIColor blackColor];
|
|
||||||
replacement.textColor = [UIColor whiteColor];
|
|
||||||
replacement.textAlignment = UITextAlignmentCenter;
|
|
||||||
replacement.text = [NSString stringWithFormat:@"Event performed, view %x", adWhirlView];
|
|
||||||
[adWhirlView replaceBannerViewWith:replacement];
|
|
||||||
[replacement release];
|
|
||||||
[self adjustAdSize];
|
|
||||||
self.label.text = [NSString stringWithFormat:@"Event performed, view %x", adWhirlView];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@@ -1,513 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">768</int>
|
|
||||||
<string key="IBDocument.SystemVersion">10D573</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">762</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">460.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string key="NS.object.0">87</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="8"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBProxyObject" id="372490531">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBProxyObject" id="975951072">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBUIView" id="157223416">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">301</int>
|
|
||||||
<object class="NSMutableArray" key="NSSubviews">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBUITableView" id="873029372">
|
|
||||||
<reference key="NSNextResponder" ref="157223416"/>
|
|
||||||
<int key="NSvFlags">311</int>
|
|
||||||
<string key="NSFrameSize">{320, 182}</string>
|
|
||||||
<reference key="NSSuperview" ref="157223416"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<int key="IBUITag">3337</int>
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<bool key="IBUIBouncesZoom">NO</bool>
|
|
||||||
<int key="IBUISeparatorStyle">1</int>
|
|
||||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
|
||||||
<float key="IBUIRowHeight">44</float>
|
|
||||||
<float key="IBUISectionHeaderHeight">22</float>
|
|
||||||
<float key="IBUISectionFooterHeight">22</float>
|
|
||||||
</object>
|
|
||||||
<object class="IBUILabel" id="725208156">
|
|
||||||
<reference key="NSNextResponder" ref="157223416"/>
|
|
||||||
<int key="NSvFlags">295</int>
|
|
||||||
<string key="NSFrame">{{6, 242}, {304, 164}}</string>
|
|
||||||
<reference key="NSSuperview" ref="157223416"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MCAwAA</bytes>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<int key="IBUITag">1337</int>
|
|
||||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<string key="IBUIText">Requesting Ad...</string>
|
|
||||||
<object class="NSFont" key="IBUIFont">
|
|
||||||
<string key="NSName">Helvetica-Bold</string>
|
|
||||||
<double key="NSSize">17</double>
|
|
||||||
<int key="NSfFlags">16</int>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="IBUITextColor" id="598086672">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
|
||||||
</object>
|
|
||||||
<nil key="IBUIHighlightedColor"/>
|
|
||||||
<int key="IBUIBaselineAdjustment">1</int>
|
|
||||||
<float key="IBUIMinimumFontSize">10</float>
|
|
||||||
<int key="IBUINumberOfLines">9</int>
|
|
||||||
<int key="IBUITextAlignment">1</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBUILabel" id="587745129">
|
|
||||||
<reference key="NSNextResponder" ref="157223416"/>
|
|
||||||
<int key="NSvFlags">295</int>
|
|
||||||
<string key="NSFrame">{{6, 191}, {304, 43}}</string>
|
|
||||||
<reference key="NSSuperview" ref="157223416"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MC45ODMwMjc3NTYyIDEgMC43OTU2NDI2NzQAA</bytes>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<int key="IBUITag">103</int>
|
|
||||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<string key="IBUIText"/>
|
|
||||||
<reference key="IBUITextColor" ref="598086672"/>
|
|
||||||
<nil key="IBUIHighlightedColor"/>
|
|
||||||
<int key="IBUIBaselineAdjustment">1</int>
|
|
||||||
<float key="IBUIMinimumFontSize">10</float>
|
|
||||||
<int key="IBUINumberOfLines">2</int>
|
|
||||||
<int key="IBUITextAlignment">1</int>
|
|
||||||
<int key="IBUILineBreakMode">0</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="NSFrameSize">{320, 416}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
|
||||||
<int key="NSID">2</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
<object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
|
|
||||||
<bool key="IBUIPrompted">NO</bool>
|
|
||||||
</object>
|
|
||||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">view</string>
|
|
||||||
<reference key="source" ref="372490531"/>
|
|
||||||
<reference key="destination" ref="157223416"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">13</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">dataSource</string>
|
|
||||||
<reference key="source" ref="873029372"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">14</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="873029372"/>
|
|
||||||
<reference key="destination" ref="372490531"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">15</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<object class="NSArray" key="orderedObjects">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<reference key="object" ref="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="372490531"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="975951072"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">8</int>
|
|
||||||
<reference key="object" ref="157223416"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="725208156"/>
|
|
||||||
<reference ref="587745129"/>
|
|
||||||
<reference ref="873029372"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">4</int>
|
|
||||||
<reference key="object" ref="873029372"/>
|
|
||||||
<reference key="parent" ref="157223416"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">9</int>
|
|
||||||
<reference key="object" ref="725208156"/>
|
|
||||||
<reference key="parent" ref="157223416"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">16</int>
|
|
||||||
<reference key="object" ref="587745129"/>
|
|
||||||
<reference key="parent" ref="157223416"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>-1.CustomClassName</string>
|
|
||||||
<string>-2.CustomClassName</string>
|
|
||||||
<string>16.IBPluginDependency</string>
|
|
||||||
<string>4.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>4.IBPluginDependency</string>
|
|
||||||
<string>8.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>8.IBPluginDependency</string>
|
|
||||||
<string>8.IBViewEditorWindowController.showingLayoutRectangles</string>
|
|
||||||
<string>9.IBPluginDependency</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>LocationController</string>
|
|
||||||
<string>UIResponder</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>{{-934, 473}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>{{150, 163}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="activeLocalization"/>
|
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="sourceID"/>
|
|
||||||
<int key="maxID">16</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">LocationController</string>
|
|
||||||
<string key="superclassName">TableController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/LocationController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">TableController</string>
|
|
||||||
<string key="superclassName">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/TableController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="104847773">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UILabel</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIResponder</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="104847773"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIScrollView</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchBar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchDisplayController</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UITableView</string>
|
|
||||||
<string key="superclassName">UIScrollView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
|
||||||
<integer value="768" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
|
||||||
<integer value="3000" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">AdWhirlSDK2_Sample-3_x.xcodeproj</string>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<string key="IBCocoaTouchPluginVersion">87</string>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
@@ -1,525 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">768</int>
|
|
||||||
<string key="IBDocument.SystemVersion">10B504</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">740</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1038.2</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">437.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string key="NS.object.0">62</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<integer value="9"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBProxyObject" id="841351856">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBProxyObject" id="302016328">
|
|
||||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBUICustomObject" id="664661524"/>
|
|
||||||
<object class="IBUIWindow" id="380026005">
|
|
||||||
<nil key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">1316</int>
|
|
||||||
<object class="NSPSMatrix" key="NSFrameMatrix"/>
|
|
||||||
<string key="NSFrameSize">{320, 480}</string>
|
|
||||||
<object class="NSColor" key="IBUIBackgroundColor">
|
|
||||||
<int key="NSColorSpace">1</int>
|
|
||||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
|
||||||
</object>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBUINavigationController" id="701001926">
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
<object class="IBUINavigationBar" key="IBUINavigationBar" id="207850653">
|
|
||||||
<nil key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">256</int>
|
|
||||||
<string key="NSFrameSize">{0, 0}</string>
|
|
||||||
<bool key="IBUIOpaque">NO</bool>
|
|
||||||
<bool key="IBUIClipsSubviews">YES</bool>
|
|
||||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="IBUIViewControllers">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBUIViewController" id="619226028">
|
|
||||||
<object class="IBUINavigationItem" key="IBUINavigationItem" id="394667715">
|
|
||||||
<reference key="IBUINavigationBar"/>
|
|
||||||
<string key="IBUITitle">AdWhirl Samples</string>
|
|
||||||
</object>
|
|
||||||
<reference key="IBUIParentViewController" ref="701001926"/>
|
|
||||||
<string key="IBUINibName">RootViewController</string>
|
|
||||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="841351856"/>
|
|
||||||
<reference key="destination" ref="664661524"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">4</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">window</string>
|
|
||||||
<reference key="source" ref="664661524"/>
|
|
||||||
<reference key="destination" ref="380026005"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">5</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
|
||||||
<string key="label">navigationController</string>
|
|
||||||
<reference key="source" ref="664661524"/>
|
|
||||||
<reference key="destination" ref="701001926"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">15</int>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<object class="NSArray" key="orderedObjects">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<reference key="object" ref="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">2</int>
|
|
||||||
<reference key="object" ref="380026005"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="841351856"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">3</int>
|
|
||||||
<reference key="object" ref="664661524"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="302016328"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">9</int>
|
|
||||||
<reference key="object" ref="701001926"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="207850653"/>
|
|
||||||
<reference ref="619226028"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">11</int>
|
|
||||||
<reference key="object" ref="207850653"/>
|
|
||||||
<reference key="parent" ref="701001926"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">13</int>
|
|
||||||
<reference key="object" ref="619226028"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="394667715"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="701001926"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">14</int>
|
|
||||||
<reference key="object" ref="394667715"/>
|
|
||||||
<reference key="parent" ref="619226028"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>-1.CustomClassName</string>
|
|
||||||
<string>-2.CustomClassName</string>
|
|
||||||
<string>11.IBPluginDependency</string>
|
|
||||||
<string>13.CustomClassName</string>
|
|
||||||
<string>13.IBPluginDependency</string>
|
|
||||||
<string>2.IBAttributePlaceholdersKey</string>
|
|
||||||
<string>2.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>2.IBPluginDependency</string>
|
|
||||||
<string>3.CustomClassName</string>
|
|
||||||
<string>3.IBPluginDependency</string>
|
|
||||||
<string>9.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>9.IBPluginDependency</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>UIApplication</string>
|
|
||||||
<string>UIResponder</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>RootViewController</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<object class="NSMutableDictionary">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string>{{673, 376}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>AdWhirlSDK2_SampleAppDelegate</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
<string>{{27, 281}, {320, 480}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="activeLocalization"/>
|
|
||||||
<object class="NSMutableDictionary" key="localizations">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference key="dict.sortedKeys" ref="0"/>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<nil key="sourceID"/>
|
|
||||||
<int key="maxID">15</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">AdWhirlSDK2_SampleAppDelegate</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>navigationController</string>
|
|
||||||
<string>window</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="dict.values">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<string>UINavigationController</string>
|
|
||||||
<string>UIWindow</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/AdWhirlSDK2_SampleAppDelegate.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">RootViewController</string>
|
|
||||||
<string key="superclassName">UITableViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">Classes/RootViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="701728205">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIApplication</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIBarButtonItem</string>
|
|
||||||
<string key="superclassName">UIBarItem</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIBarItem</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UINavigationBar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="465903119">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UINavigationController</string>
|
|
||||||
<string key="superclassName">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="31360653">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UINavigationItem</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="465903119"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIResponder</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<reference key="sourceIdentifier" ref="701728205"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchBar</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UISearchDisplayController</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UITableViewController</string>
|
|
||||||
<string key="superclassName">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITableViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIView</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<reference key="sourceIdentifier" ref="31360653"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIViewController</string>
|
|
||||||
<string key="superclassName">UIResponder</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">UIWindow</string>
|
|
||||||
<string key="superclassName">UIView</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
|
||||||
<integer value="768" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
|
||||||
<integer value="3100" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">AdWhirlSDK2_Sample.xcodeproj</string>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<string key="IBCocoaTouchPluginVersion">3.1</string>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user