Skip to content

Commit

Permalink
feat(admob-free): add AdMobFree plugin (#1272)
Browse files Browse the repository at this point in the history
closes #1170
  • Loading branch information
ihadeed committed Mar 28, 2017
1 parent 68d9946 commit 0ef4a73
Showing 1 changed file with 276 additions and 0 deletions.
276 changes: 276 additions & 0 deletions src/@ionic-native/plugins/admob-free/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
import { Plugin, Cordova } from '@ionic-native/core';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';

export interface AdMobFreeBannerConfig {
/**
* Ad Unit ID
*/
id?: string;
/**
* receiving test ad
*/
isTesting?: boolean;
/**
* auto show ad when loaded
*/
autoShow?: boolean;
/**
* set to true, to put banner at top
*/
bannerAtTop?: boolean;
/**
* set to true, to allow banner overlap webview
*/
overlap?: boolean;
/**
* set to true to avoid ios7 status bar overlap
*/
offsetTopBar?: boolean;
/**
* Banner size
*/
size?: string;
}

export interface AdMobFreeInterstitialConfig {
/**
* Ad Unit ID
*/
id?: string;
/**
* receiving test ad
*/
isTesting?: boolean;
/**
* auto show ad when loaded
*/
autoShow?: boolean;
}

export interface AdMobFreeRewardVideoConfig {
/**
* Ad Unit ID
*/
id?: string;
/**
* receiving test ad
*/
isTesting?: boolean;
/**
* auto show ad when loaded
*/
autoShow?: boolean;
}

/**
* @name AdbMobFree
* @description
*
* @usage
* ```
* import { AdMobFree } from 'ionic-native';
*
*
* constructor(private admobFree: AdMobFree) { }
*
* ...
*
*
* ```
*/
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob',
repo: 'https://github.com/ratson/cordova-plugin-admob-free'
})
@Injectable()
export class AdMobFree {

/**
* Convenience constructor to get event names
*/
events = {
BANNER_LOAD: 'admob.banner.events.LOAD',
BANNER_LOAD_FAIL: 'admob.banner.events.LOAD_FAIL',
BANNER_OPEN: 'admob.banner.events.OPEN',
BANNER_CLOSE: 'admob.banner.events.CLOSE',
BANNER_EXIT_APP: 'admob.banner.events.EXIT_APP',

INTERSTITIAL_LOAD: 'admob.interstitial.events.LOAD',
INTERSTITIAL_LOAD_FAIL: 'admob.interstitial.events.LOAD_FAIL',
INTERSTITIAL_OPEN: 'admob.interstitial.events.OPEN',
INTERSTITIAL_CLOSE: 'admob.interstitial.events.CLOSE',
INTERSTITIAL_EXIT_APP: 'admob.interstitial.events.EXIT_APP',

REWARD_VIDEO_LOAD: 'admob.rewardvideo.events.LOAD',
REWARD_VIDEO_LOAD_FAIL: 'admob.rewardvideo.events.LOAD_FAIL',
REWARD_VIDEO_OPEN: 'admob.rewardvideo.events.OPEN',
REWARD_VIDEO_CLOSE: 'admob.rewardvideo.events.CLOSE',
REWARD_VIDEO_EXIT_APP: 'admob.rewardvideo.events.EXIT_APP',
REWARD_VIDEO_START: 'admob.rewardvideo.events.START',
REWARD_VIDEO_REWARD: 'admob.rewardvideo.events.REWARD'
};

/**
* Watch an event
* @param event {string} event name
* @return {Observable<any>}
*/
on(event: string): Observable<any> {
return Observable.fromEvent(document, event);
}

/**
*
* @type {AdMobFreeBanner}
*/
banner: AdMobFreeBanner = new AdMobFreeBanner();

/**
*
* @type {AdMobFreeInterstitial}
*/
interstitial: AdMobFreeInterstitial = new AdMobFreeInterstitial();

/**
*
* @type {AdMobFreeRewardVideo}
*/
rewardVideo: AdMobFreeRewardVideo = new AdMobFreeRewardVideo();

}

/**
* @hidden
*/
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.banner',
})
export class AdMobFreeBanner {



/**
* Update config.
* @param options
* @return {AdMobFreeBannerConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeBannerConfig): AdMobFreeBannerConfig { return; }

/**
* Hide the banner.
* @return {Promise<any>}
*/
@Cordova({ sync: true })
hide(): Promise<any> { return; }

/**
* Create banner.
* @return {Promise<any>}
*/
@Cordova({ sync: true })
prepare(): Promise<any> { return; }

/**
* Remove the banner.
* @return {Promise<any>}
*/
@Cordova({ sync: true })
remove(): Promise<any> { return; }

/**
* Show the banner.
* @return {Promise<any>}
*/
@Cordova({ sync: true })
show(): Promise<any> { return; }

}

/**
* @hidden
*/
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.interstitial',
})
export class AdMobFreeInterstitial {

/**
* Update config.
* @param options
* @return {AdMobFreeInterstitialConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeInterstitialConfig): AdMobFreeInterstitialConfig { return; }

/**
* Check if interstitial is ready
* @return {Promise<any>}
*/
@Cordova({ sync: true })
isReady(): Promise<any> { return; }

/**
* Prepare interstitial
* @return {Promise<any>}
*/
@Cordova({ sync: true })
prepare(): Promise<any> { return; }

/**
* Show the interstitial
* @return {Promise<any>}
*/
@Cordova({ sync: true })
show(): Promise<any> { return; }

}

/**
* @hidden
*/
@Plugin({
pluginName: 'AdMobFree',
plugin: 'cordova-plugin-admob-free',
pluginRef: 'admob.rewardvideo',
})
export class AdMobFreeRewardVideo {

/**
* Update config.
* @param options
* @return {AdMobFreeRewardVideoConfig}
*/
@Cordova({ sync: true })
config(options: AdMobFreeRewardVideoConfig): AdMobFreeRewardVideoConfig { return; }

/**
* Check if reward video is ready
* @return {Promise<any>}
*/
@Cordova({ sync: true })
isReady(): Promise<any> { return; }

/**
* Prepare reward video
* @return {Promise<any>}
*/
@Cordova({ sync: true })
prepare(): Promise<any> { return; }

/**
* Show the reward video
* @return {Promise<any>}
*/
@Cordova({ sync: true })
show(): Promise<any> { return; }

}

0 comments on commit 0ef4a73

Please sign in to comment.